![](/img/trans.png)
[英]How to use BeautifulSoup to get parent tag's name value when the parent tag's children has certain attribute values?
[英]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.