2 回答

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
該表包含 GST 發(fā)票編號(hào),需要一些時(shí)間來加載“GST 發(fā)票編號(hào)”。在讀取數(shù)據(jù)進(jìn)行比較之前等待一段時(shí)間。檢查下面的代碼,提取發(fā)票編號(hào)并比較第三位數(shù)字,然后單擊“查看發(fā)票”鏈接查看發(fā)票
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貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
目前沒有正則表達(dá)式,只能通過 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)
顯示以下內(nèi)容
MH2192004AA58892
MP2192004AA05359
添加回答
舉報(bào)