簡體   English   中英

無法使用 selenium python 檢索 Web 表的所有 tr 元素

[英]Unable to retrieve all tr elements of a web table using selenium python

在此處輸入圖片說明

如圖所示,我有超過 1 個表格行。 但是,除了第一行之外,我無法檢索任何這些表行。

代碼:

roster_tbody = browser.find_element(By.XPATH, "//*[@id='tableDay']/tbody")
tr = roster_tbody.find_elements(By.TAG_NAME, "tr")
print("number of table rows: " + str(len(tr)))
for trEl in tr:
    print(trEl.text)

預期輸出:
我應該看到每行打印的所有日期、日期、年份和“完整”(如果適用)。

實際輸出:

在此處輸入圖片說明

我試過的:

1)

tr = WebDriverWait(browser, 20).until(
    EC.visibility_of_all_elements_located((By.TAG_NAME, "tr"))
)

它不能很好地工作並且只返回第一個表格行。

2)

row_2 = browser.find_element(By.XPATH, "//*[@id='tableDay']/tbody/tr[2]")
print(row_2.text)

結果:

在此處輸入圖片說明

3) 將//*[@id='tableDay']/tbody更改為.//*[@id='tableDay']/tbody也不起作用

  1. 從元素面板中搜索 tr 2 :找到並突出顯示了 tr 2

在此處輸入圖片說明

  1. 從控制台面板搜索 tr:找到了所有 37 個 tr。

在此處輸入圖片說明

任何幫助深表感謝!

嘗試使用browser.find_elements_by_xpath("//*[@id='tableDay']/tbody/tr[2]")

由於有很多 tr 標簽,我認為滾動到每個元素是必要的。

此外,我正在使用索引來查找每個 Web 元素。

代碼 :

roster_tbody = browser.find_elements(By.XPATH, "//*[@id='tableDay']/tbody/tr")
j = 1
for i in range(len(roster_tbody)):
    element = browser.find_element(By.XPATH, f"(//*[@id='tableDay']/tbody/tr)[{j}]")
    browser.execute_script("arguments[0].scrollIntoView(true);", element)
    print(element.get_attribute('innerHTML'))
    j = j + 1 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM