我希望页面上的一些元素已经被点击。但是Selenium click不起作用。我的代码的这一部分:
username_form = driver.find_element_by_id('form3-username')
password_form = driver.find_element_by_id('form3-password')
username_form.send_keys('SomeLogin')
password_form.send_keys('SomePass')
driver.find_element_by_xpath("//div[@class='one-factor']/button").click()
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, "//div/a[@id='notify-toggle' and not(@disabled)]"))
)
element.click()
将我正在处理的页面分成两部分:
<a id="notify-toggle" class="toggle link">
<span title="Уведомления" class="data-count" data-count="0" data-icon="">
</span>
</a>
Promlem是element.click()
不工作。我熟悉了我的问题的一些解决方案,但我发现这些解决方案对我不起作用。我尝试在not (@disabled)
和其他解决方案中使用xpath expression,但没有人对我有帮助。我完全不知道为什么click
不能工作,我很乐意得到任何提示
发布于 2021-12-04 08:33:49
将内部<span>
引导WebDriverWait作为的目标,您可以使用以下任一Locator Strategies
使用CSS_SELECTOR的
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,“a.toggle.link#notify-切换span.data-count:not(disabled)title"))).click()
使用XPATH的
span(driver,20).until(EC.element_to_be_clickable((By.XPATH,“//a@class=‘切换链接’and @id=‘通知切换’//WebDriverWait@class=‘数据计数’和@title"))).click()
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
参考文献
您可以在以下位置找到几个相关的详细讨论:
https://stackoverflow.com/questions/70222582
复制相似问题