簡體   English   中英

如何使用 selenium python 點擊​​ td 元素

[英]How to click on td element using selenium python

所以我是 Selenium 的 Fairley 新手,我正在嘗試點擊一張桌子,但我似乎找不到它。 下面我發布了我的代碼以及我試圖點擊的屏幕截圖。

這是我的代碼:

competitorPrices = WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.LINK_TEXT, "Competitor Prices"))).click()

HTML 快照:

html代碼

錯誤:

這是我遇到的錯誤

元素快照:

這是我想點擊的內容

我會嘗試這樣的事情:

...
import time
time.sleep(5)
xpath = "//*[contains(text(),'Competitor Prices')]"
element = driver.find_element(by=By.XPATH, value=xpath)
competitorPrices = driver.execute_script("$(arguments[0]).click();", element) 

有時 element_to_be_clickable 方法不能開箱即用。 在這種情況下進行調試時,我使用 time.sleep 以便更好地理解問題

所需的元素是<td>而不是<a>標記。 因此LINK_TEXT不起作用。

table_td

此外, click()不會返回任何內容,因此您可以刪除competitorPrices價格始終為None


解決方案

您可以使用以下任一定位器策略

  • 使用CSS_SELECTOR

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "table#tblTabStrip td[ch^='CompetitorPrices']"))).click()
  • 使用XPATH

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//table[@id='tblTabStrip']//td[text()='Competitor Prices']"))).click()
  • 注意:您必須添加以下導入:

     from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC

暫無
暫無

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

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