硒:硒如何识别可见或不可见元素?是否可能在DOM中加载,但不在UI上呈现? 硒:硒如何识别可见或不可见元素?是否可能在DOM中加载,但不在UI上呈现? 我想验证一个场景,其中元素是可点击的,我知道web驱动器有方法“ElementToBickable”,但是,我想知道内部工作原理。请帮我做这个 另外,如何处理在DOM中加载元素但UI显示正在加载的场景,如何等待完全加载 请让我知道,如果UI没有加载,那么selenium会直接调用DOM元素,或者如果UI元素正在加载,那么它将无法执行?我真的希望能有更多的技术解释
硒元素一出现在环境中或在环境中可见,就可以识别其存在或可见度。从用户角度来看,您可以在上调用方法来检查是否显示了所需的WebElement。根据当前的实现,Selenium可能无法区分加载的元素和呈现的元素。类中的方法设置检查元素是否可见和启用的期望值,以便您可以单击它硒:硒如何识别可见或不可见元素?是否可能在DOM中加载,但不在UI上呈现? 硒:硒如何识别可见或不可见元素?是否可能在DOM中加载,但不在UI上呈现? 我想验证一个场景,其中元素是可点击的,我知道web驱动器有方法“ElementToBickable”,但是,我想知道内部工作原理。请帮我做这个 另外,如何处理在DOM中加载元素但UI显示正在加载的场景,如何等待完全加载 请让我知道,如果UI没有加载,那么selenium会直接调用DOM元素,或者如果UI元素正在加载,那么它将无法执行?我真的希望能有更多的技术解释,selenium,selenium-webdriver,dom,webdriverwait,expected-condition,Selenium,Selenium Webdriver,Dom,Webdriverwait,Expected Condition,硒元素一出现在环境中或在环境中可见,就可以识别其存在或可见度。从用户角度来看,您可以在上调用方法来检查是否显示了所需的WebElement。根据当前的实现,Selenium可能无法区分加载的元素和呈现的元素。类中的方法设置检查元素是否可见和启用的期望值,以便您可以单击它 当元素加载到DOM中,但UI显示正在加载时,您仍然必须等待JavaScript和AJAX调用完成页面加载,以便页面上的所有WebElement都变得可交互。最多要等待完全加载,您可以将pageLoadStrategy设置为no
pageLoadStrategy
设置为normal,但可能仍需要诱导目标WebElement呈现、可见、可交互或可点击
- 如果未加载UI,则Selenium可能无法与一些DOM元素交互
更新 根据您的回答,这里是WebElement的不同阶段以及检查阶段的相应预期条件:
- :
- :
- :
感谢您的快速回复,请允许我询问后续查询,关于ElementToBickable,我已经浏览了官方文档,仍然对“检查元素的期望是可见的并启用的,这样您就可以单击它”的说法感到困惑这是否意味着它将只在UI上可见时单击,或者它再次与DOM有关,我知道字面意思,但仍然希望确定。请帮忙,谢谢。请容忍我并允许我提出后续查询,1)元素的可见性和可点击的元素,两者都与DOM部分相关,当它说“元素显示但高度和宽度也大于0”这是否意味着它正在检查UI元素是否实际显示,或者根据下载的css确定是否显示该元素。我试图确保的唯一一点是2。)是否有任何方法可以断言元素实际显示在网页上,或者仅仅基于DOM和加载的css,html selenium正在执行操作?
存在性
,可见性(显示)
和可交互性(可点击性)
所有这些都与HTML DOM中WebElement的不同状态相关。各州是不同的。根据您的要求使用适当的预期条件。非常感谢您的澄清
presenceOfElementLocated(By locator)
An expectation for checking that an element is present on the DOM of a page. This does not necessarily mean that the element is visible.
visibilityOf(WebElement element)
An expectation for checking that an element, known to be present on the DOM of a page, is visible. Visibility means that the element is not only displayed but also has a height and width that is greater than 0.
elementToBeClickable(By locator)
An expectation for checking an element is visible and enabled such that you can click it.