【发布时间】:2021-10-20 20:09:26
【问题描述】:
当我尝试单击带有 selenium 的下拉列表时,出现此错误“元素不可交互”。但是在调试模式下,当我在断点之前检查(按 F12 )并继续运行时,测试通过了。所以我的问题是为什么可以单击元素以及我应该怎么做才能防止再次出现这种情况。非常感谢!
【问题讨论】:
-
等到元素可以交互,然后点击
标签: selenium serenity-bdd cucumber-serenity
当我尝试单击带有 selenium 的下拉列表时,出现此错误“元素不可交互”。但是在调试模式下,当我在断点之前检查(按 F12 )并继续运行时,测试通过了。所以我的问题是为什么可以单击元素以及我应该怎么做才能防止再次出现这种情况。非常感谢!
【问题讨论】:
标签: selenium serenity-bdd cucumber-serenity
有几点需要注意,
始终以全屏模式启动浏览器。
driver.maximize_window()
这个代码应该写在driver.get()之前
element not interactable,尝试使用动作链点击或send_keys:类似这样的:-
from selenium.webdriver.common.action_chains import ActionChains
action = ActionChains(driver)
action.move_to_element('your web element here').click().perform()
为了解决这个问题,您可能需要向下滚动以让 Selenium 知道元素的确切位置。
【讨论】:
您必须在访问元素之前添加等待/延迟,以让元素在访问之前完全加载到页面上。
最简单的方法是添加硬编码的睡眠,比如
time.sleep(5)
更好的方法是使用预期条件实现的显式方式。
【讨论】: