gpt4 book ai didi

java - 为什么有些元素存在但不可交互/显示?

转载 作者:行者123 更新时间:2023-11-30 05:30:19 25 4
gpt4 key购买 nike

我对测试还很陌生,试图更好地了解到底发生了什么。我发现当 css 选择器元素附加了 waitUntilCanInteract 或 waitUntilDisplayed 时,我们的一些测试代码失败,即使当我进行 chrome 检查时,该元素显示在浏览器中。将它们更改为 waitUntilExists 会使它们达到一个通过点,所以我想知道究竟发生了什么造成这种情况?

最佳答案

正是Selenium处理元素的三种独特状态。

  • html 中存在元素 :可以通过 ExpectedCondition 检测元素的此状态 presenceOfElementLocated()其中期望是检查元素是否存在DOM 中一个页面的。这并不一定意味着该元素可见

    • 示例:

      WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("css_of_element")));
  • html 中元素的可见性 :可以通过 ExpectedCondition 检测元素的此状态 visibilityOfElementLocated()其中期望是检查元素是否存在DOM 中页面的并且可见。可见性意味着该元素不仅会显示,而且高度宽度都大于0

    • 示例:

      WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("css_of_element")));
  • 可点击的元素:可以通过ExpectedCondition检测元素的这种状态 elementToBeClickable()期望是检查元素是否可见并且启用,以便您可以单击它。

    • 示例:

      WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("css_of_element")));

You can find a detailed discussion in Selenium: Check for the presence of element

关于java - 为什么有些元素存在但不可交互/显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57693634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com