[英]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 快照:
錯誤:
元素快照:
我會嘗試這樣的事情:
...
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
不起作用。
此外, 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.