我是硒的新手,并且我一直在尝试单击锚元素。我已经尝试了css-selector,lint_text,xpath,绝对xpath,但是我仍然无法单击它,相反,我收到了以下错误消息:
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: Driver Schedule
有谁知道如何解决这个问题?
更新:我现在收到此错误:
selenium.common.exceptions.ElementClickInterceptedException: Message: Element <a href="#/schedule/weekly-view"> is not clickable at point (326,333) because another element <div class="app-spinner-layer active"> obscures it
要click()
在带有文本作为驱动程序时间表的元素上添加元素,因为它是一个<a>
节点,则必须为其诱导WebDriverWait,element_to_be_clickable()
并且可以使用以下定位策略之一:
使用LINK_TEXT
:
WebDriverWait(driver, 20).until(EC.invisibility_of_element((By.CSS_SELECTOR, "div.app-spinner-layer.active")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Driver Schedule"))).click()
使用PARTIAL_LINK_TEXT
:
WebDriverWait(driver, 20).until(EC.invisibility_of_element_located((By.XPATH, "//div[@class='app-spinner-layer active']")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "Driver Schedule"))).click()
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.invisibility_of_element((By.CSS_SELECTOR, "div.app-spinner-layer.active")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li.pll a[href$='weekly-view']"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.invisibility_of_element_located((By.XPATH, "//div[@class='app-spinner-layer active']")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(@href,'weekly-view') and contains(., 'Driver Schedule')]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句