一尘不染

selenium:selenium如何识别可见元素?是否可以将其加载到DOM中但不能在UI上呈现?

selenium

  1. selenium:selenium如何识别可见元素?是否可以将其加载到DOM中但不能在UI上呈现?我想验证一个元素可单击的情况,我知道Web驱动器具有方法“ ElementToBeClickable”,但是,我想知道内部的工作方式。请帮我。
  2. 另外,如何处理将元素加载到DOM中但UI显示加载正在进行中的情况,如何等待完整加载?
  3. 请让我知道,如果未加载UI,则selenium将直接调用DOM元素,或者如果加载UI元素,则执行将失败?我真的很感谢对此进行更多的技术解释。

阅读 487

收藏
2020-06-26

共1个答案

一尘不染

  • 可以识别 存在能见度 只要它们的元件的 存在可见 HTML DOM 。从用户的角度来看,你可以调用isDisplayed()上的方法 WebElement 如果打算检查 WebElement显示 与否。根据当前的实现, Selenium 可能无法区分 加载 元素和 渲染 元素。 ExpectedConditions 类中的 ElementToBeClickable 方法为检查元素是否 可见 设置了期望值 __ __并 启用它, 以便您可以 单击 它。

  • 元素在正在进行的DOM,但UI显示正在加载的加载 你还是要 等待的JavaScriptAJAX调用 ,因此所有完成加载页面 WebElements 在页面上成为 交互 。在大多数 等待完整的负荷 ,你可以设置pageLoadStrategy正常 ,但仍可能诱发 WebDriverWait 于预期 WebElement 成为 可见交互点击

  • 粗略 如果没有加载UI seleniumhq 可能不能够与几个DOM元素的交互。


更新资料

根据您的反问,这里是 WebElement 的不同阶段以及检查这些阶段的相应 ExpectedConditions

  • *元素的 *存在

    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.

注意 :根据docs 元素是Clickable-
它已显示并启用

2020-06-26