根据 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)(WebDriverJS
是 protractor
正在换行)。
这是 Selenium WebDriver 规范,描述了 WebDriver 在确定可见性时考虑的因素(这并非微不足道):
这是 javascript selenium 绑定(bind)“显示性”实现:
关于testing - Protractor 预期条件 visibilityOf() 在未显示元素时返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29244439/