python - 如何遍历表并打开满足条件的选项卡
问题描述
我需要遍历一个表来获取“GST Invoice No.”的值。并仅打开第三位为数字 2 的发票编号的“查看发票”表。
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(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 的那个?
解决方案
没有正则表达式,目前只是通过 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
推荐阅读
- php - 遇到未捕获的异常 php codeigniter
- composer-php - Fishpig 身份验证在 Magento 2 上不起作用
- java - Java访问动态创建的JFrame
- python - 如何在没有 BlobStore 的情况下从 Flask 表单将视频文件直接上传到 Cloud Storage?
- django - 配置 HTTPS 重定向失败
- android - Android:Kotlin 使用邮递员中的客户端证书发出 http 请求
- javascript - 不明白 JavaScript 赋值运算符如何与函数交互
- c++ - 子类地址等于虚拟基类地址?
- jquery - 如何在jQuery中替换“输出?
- c++ - VSCode IntelliSense 无法识别 SDL 框架的 SDL_image 扩展库