2 回答

TA貢獻1111條經驗 獲得超0個贊
該表包含 GST 發票編號,需要一些時間來加載“GST 發票編號”。在讀取數據進行比較之前等待一段時間。檢查下面的代碼,提取發票編號并比較第三位數字,然后單擊“查看發票”鏈接查看發票
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("URL")
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='PNRId']"))).send_keys("SHFYGW")
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='GstRetrievePageInteraction']"))).click()
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, "gst-invoice-list.list-inline")))
elements = driver.find_elements(By.CLASS_NAME, "gst-invoice-list.list-inline")
for ele in elements:
eleText = ele.find_element_by_tag_name("li").text
if eleText[2]=='2':
print(eleText)
#ele.find_element(By.ID, 'ViewInvoice').click()
driver.execute_script("arguments[0].click()", ele.find_element(By.ID, 'ViewInvoice'));
#break
driver.quit()

TA貢獻1864條經驗 獲得超2個贊
目前沒有正則表達式,只能通過 xpath 查找。
driver.implicitly_wait(5)
uls = driver.find_elements_by_xpath("//ul[@class='gst-invoice-list list-inline']//li")
for url in uls:
if url.text[2]=='2': #^..2 would be a simple regex for digit 2 on 3rd index
print (url.text)
顯示以下內容
MH2192004AA58892
MP2192004AA05359
添加回答
舉報