testing - Protractor 预期条件 visibilityOf() 在未显示元素时返回 true

标签 testing selenium selenium-webdriver protractor end-to-end

根据 Protractor 的 visibiityOf() API: 可见性是指元素不仅被显示,而且高度和宽度都大于0。

我有一个返回 50 行数据的搜索页面。第 50 行在页面底部不可见,只有多次滚动到底部才能看到。当我从不向下滚动时,这行怎么可能立即完成?

browser.wait(EC.visibilityOf(element(by.xpath("//*[@id='search-result']/table/tbody/tr[50]/td[1]")), 20000));

该元素确实存在,只是它不在 View 中。所以我不明白发生了什么。

最佳答案

这实际上不是关于protractor,而是更多关于Selenium WebDriver 和 javascript selenium webdriver 绑定(bind)(WebDriverJSprotractor 正在换行)。

这是 Selenium WebDriver 规范,描述了 WebDriver 在确定可见性时考虑的因素(这并非微不足道):

这是 javascript selenium 绑定(bind)“显示性”实现:

关于testing - Protractor 预期条件 visibilityOf() 在未显示元素时返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29244439/

相关文章:

testing - 创建越来越大的测试文件

用于回归测试的记录程序执行的Java自动化测试工具

bash - Shell - 表达式中的语法错误(错误标记为 "0 ")

java - 将个人 SSL 证书与 Webdriver (Selenium 2.0) 结合使用

java - Selenium : find part of identifier

unit-testing - 控制流测试和基本路径测试之间的区别

java - Selenium WebDriver 找不到元素

java - 作为 Maven 测试运行时,TestNG 测试会失败,但作为 TestNG 套件运行时会通过

selenium - 我如何使用 selenium web-driver 设置新的元素样式

testing - 如何重新运行失败的 selenium-rc 测试脚本?