【问题标题】:Element(s) NOT Found: GAVE UP when using expectedconditions with phantomjs未找到元素:使用带有 phantomjs 的预期条件时放弃
【发布时间】:2015-04-08 20:31:58
【问题描述】:

对于我的 UI 测试,我使用带有 webdriver(版本 2.45.0)的页面工厂模型。对于驱动程序,我使用 phantomjs(版本 1.9.8)。在一个单独的类中,我有一个类似的方法:

public WebElement waitTillNotVisible(By locator, WebDriver driver){
    return new WebDriverWait(driver, 10).
            until(ExpectedConditions.invisibilityOfElementLocated(locator));
}

每次调用 waitTillNotVisible 时,控制台日志中都会出现错误,

[ERROR - 2015-04-08T11:30:18.149Z] WebElementLocator - _handleLocateCommand - Element(s) NOT Found: GAVE UP. Search Stop Time: 1428492618108

但测试继续并通过。这种行为的原因是什么,如何避免?这在我看来就像是 phantomjs 的错误,因为在使用 FirefoxDriver 进行测试时不会出现这样的消息。

【问题讨论】:

    标签: java webdriver phantomjs


    【解决方案1】:

    为了使用invisibilityOfElementLocated,如果我理解正确,元素需要出现在 DOM 中。看起来错误已被抛出,因为元素不存在/使用给定的选择器找不到元素。

    【讨论】:

    • 为什么火狐驱动没有问题?
    • 好吧,我不确定。但是,我们必须记住,PhantomJs 和 Firefox 的工作方式不同。你能看看那个元素是否至少存在于 PhantomJs 中可能有presenceOfElementLocated 第一
    • 好吧,我正在测试的元素应该从 DOM 中消失。也许有一个更好的预期条件。 stalenessOf 对我不起作用,因为它会引发 element not found 异常。
    • 是的。我想说的是 Invisibledoes not exist (消失)是不一样的。不可见可能意味着 dom 中存在元素,但不可见意味着隐藏,这可能是你的问题
    • 如何等到 dom 中不存在元素(循环中的 findElemens 除外)?
    猜你喜欢
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多