亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何迭代表并打開滿足條件的選項卡

如何迭代表并打開滿足條件的選項卡

函數式編程 2023-08-08 09:55:50
我需要迭代一個表來獲取“GST 發票號”的值。并打開僅包含第三位為數字 2 的發票號的“查看發票”表。from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as ECdriver = webdriver.Chrome(executable_path=r'D:/Chrome driver/chromedriver.exe') # Get local session(use webdriver.Chrome() for chrome) driver.get("URL")WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//input[@id='PNRId']"))).send_keys("SHFYGW")WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='GstRetrievePageInteraction']"))).click()#print(toJourney.find_element_by_xpath('/tbody/tr/td[2]/ul'))如何繼續迭代表?我嘗試了以下方法,但它只提供了一個值uls = driver.find_elements(By.CLASS_NAME, "gst-invoice-list.list-inline")如何迭代只打開第三位數字為 2 的數字?
查看完整描述

2 回答

?
catspeake

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()


查看完整回答
反對 回復 2023-08-08
?
慕斯王

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


查看完整回答
反對 回復 2023-08-08
  • 2 回答
  • 0 關注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號