繁体   English   中英

如何获得某些标签值

[英]How to get certain Tag Values

以下 Selenium 自动化脚本正确打开给定的 URL,并打开打开详细发票的查看发票选项卡。 我需要从详细发票中获取一些值,例如数字、日期和表格值。 这些值非常嵌套以正确获取它们。 单击查看发票时打开的URL,我不知道如何抓取它或使用selenium进行处理。 代码中的元素是否像一个实例来获取打开的详细发票页面的值,还是有一些不同的方法?

这是代码:

from selenium import webdriver


driver = webdriver.Chrome(executable_path=r'D:/Chrome driver/chromedriver.exe') # Get local session(use webdriver.Chrome() for chrome) 
driver.implicitly_wait(3)

driver.get("URL") # load page from some url

driver.find_element_by_xpath("//input[@id='PNRId']").send_keys("MHUISZ")
driver.find_element_by_xpath("//input[@id='GstRetrievePageInteraction']").click()

element = driver.find_element_by_name('ViewInvoice')
element.click()

谁能指导我如何从发票页面获取值?

因此,请尝试等待元素可见或可点击,并且您点击发票实际上会创建新的子句柄,因此您必须切换到它们。 您现在要做的就是弄清楚如何查看表格,尝试查看它的 xpath。

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("MHUISZ")
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.NAME, 'ViewInvoice'))).click()
p = driver.current_window_handle
#get first child window
chwnd = driver.window_handles
for w in chwnd:
   #switch focus to child window
   if(w!=p):
       driver.switch_to.window(w)
       break
invoiceTable = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "TableHeader")))
print(invoiceTable.find_element_by_xpath("tbody/tr[1]/td").text)
driver.quit()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM