当前位置: 首页 > 面试题库 >

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

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

问题答案:
  • 可以识别 存在能见度 只要它们的元件的 存在可见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-
它已显示并启用



 类似资料:
  • 问题内容: 有什么方法可以检查元素在纯JS(无jQuery)中是否可见? 因此,例如,在此页面中:PerformanceBikes,如果将鼠标悬停在Deals上(在顶部菜单上),则会显示一个交易窗口,但开始时未显示。它在HTML中,但不可见。 那么,给定一个DOM元素,我如何检查它是否可见?我试过了: 但它似乎不起作用。我想知道应该检查哪些属性。我想到: 还有其他我可能会想念的东西吗? 问题答案:

  • 有没有什么方法可以让我检查一个元素在纯JS(没有jQuery)中是否可见? 例如,在这个页面:Performance Bikes中,如果你将鼠标悬停在Deals(在顶部菜单上)上,就会出现一个Deals窗口,但一开始并没有显示出来。它在HTML中,但不可见。 那么,给定一个DOM元素,我如何检查它是否可见呢?我试过: 还有其他我可能失踪的吗?

  • 本文向大家介绍如何检查可见DOM中是否存在元素?,包括了如何检查可见DOM中是否存在元素?的使用技巧和注意事项,需要的朋友参考一下 我们可以使用Node.contains方法执行此检查。Node.contains()方法返回一个布尔值,该值指示节点是否为给定节点的后代,即节点本身,其直接子级(childNodes)之一,子级的直接子级之一,依此类推。 示例 例如,您要查找具有id test的元素,

  • 问题内容: 有没有一种有效的方法来判断DOM元素(在HTML文档中)当前是否可见(显示在 视口中 )? (问题是针对Firefox的。) 问题答案: 更新: 时间在前进,我们的浏览器也在前进。 不再推荐 使用 此技术, 如果不需要支持7之前的Internet Explorer版本,则应使用Dan的解决方案。 原始解决方案(现已过时): 这将检查该元素在当前视口中是否完全可见: 您可以简单地对其进行

  • 问题内容: 有没有一种有效的方法来判断DOM元素(在HTML文档中)当前是否可见 (问题是针对Firefox的。) 问题答案: 更新: 时间在前进,我们的浏览器也在前进。 不再推荐使用 此技术, 如果不需要支持7之前的Internet Explorer版本,则应使用Dan的解决方案。 原始解决方案(现已过时): 这将检查该元素在当前视口中是否完全可见: 您可以简单地对其进行修改,以确定元素的任何部