- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Protractor 中,基本上有 3 种方法来检查元素是否存在:
var elm = element(by.id("myid"));
browser.isElementPresent(elm);
elm.isPresent();
elm.isElementPresent();
这些选项是否等效且可以互换,通常应该首选哪一个?
最佳答案
所有功能都以类似的方式运行,但有细微的差别。以下是我发现的一些差异 -
ElementFinder
的扩展,所以 waits for Angular在执行任何操作之前在页面上进行设置。 elm
是 element(locator)
或 ElementFinder
而不是 ElementArrayFinder
时,它起作用。如果使用指定的locator
返回多个元素,则检查第一个元素是否在DOM中isEnabled()
。不接受任何参数作为输入。 elm.isElementPresent(subLoc)
-(当有 elm
的子定位器时)
ElementFinder
的扩展,因此在执行任何操作之前等待 Angular 在页面上稳定下来。elm
的子定位器
作为参数。 (这与 elm.isPresent()
之间的唯一区别) browser.isElementPresent(element || Locator)
-
webdriver
的实现,因此不需要等待 Angular 稳定下来。定位器
或元素
作为参数,如果使用同一定位器定位多个元素,则使用第一个结果。以上所有内容都会检查 DOM 中是否存在元素并返回 boolean
结果。虽然 Angular 和非 Angular 特征不会影响这些方法的使用,但当该方法默认等待 Angular 稳定时,还有一个额外的优点,有助于避免在未找到类似 Angular 元素或状态元素引用异常时出现错误,等等...
关于javascript - 在 Protractor 中, browser.isElementPresent vs element.isPresent vs element.isElementPresent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33019429/
在 Protractor 中,基本上有 3 种方法来检查元素是否存在: var elm = element(by.id("myid")); browser.isElementPresent(elm);
我正在使用下面的代码来检查我的网页上的元素 private boolean isElementPresent(By by) { try { driver.findElement
我的 e2e 测试中有以下简单的代码行... var promise = ptor.isElementPresent(element(by.binding('firstName'))); 我收到一条错
如果我定义一个页面对象myPage: return { myButton: element(by.css('#my-button')) }; 然后在别处执行 isElementPresent 检查
如何使用此代码: public boolean isElementPresent(By by) 当我导出我的测试脚本时,测试脚本中会自动出现,但下面的大部分方法都没有使用,所以会有警告说我没有使用那个
我希望驱动程序等到元素可见或存在,但它根本不起作用!以下代码 it('shows events in "Event overview"', function(){ driver.fin
我的 end2end 测试有问题。有时他们会毫无问题地通过,但三分之二的时间他们会失败。我使用 Protractor 和以下代码: describe('Admin dashboard delete
这个问题在这里已经有了答案: In protractor, browser.isElementPresent vs element.isPresent vs element.isElementPre
我正在尝试编写一个登录网站的 Node 函数,但无法使其正常工作。我正在尝试使用 isElementPresent 函数等待页面加载,在 this post 中引用但它似乎没有用。 这是我目前所拥有的
我的测试: it('should allow login', function() { browser.get('index.html'); $('#username').sendKeys('
嗨,我需要检查下拉字段是否具有给定值,但未选择这些值,因此它不会显示在下拉框中。 我有以下元素的 Xpath //table[contains(@id,'Field')]//tr[td//span[t
当我从 TestDriver 类的主函数调用 headerVerification 方法时,尽管该元素存在,但出现空指针异常。 启动服务器类: package WebTesting; import c
我遇到以下问题... 有一段时间我注意到 selenium RC 2.0a5 中 isElementPresent 函数中的一个错误。 它只有一半左右的时间有效。 我已经等待了,在它之前我已经进行了页
我正在使用 selenium 进行一些测试,尽管当我使用 selenium 启动 firefox 时这会起作用。它在 IE 中失败。我遇到命令执行失败,当我捕获异常时,它是 Permission De
我正在尝试抓取一个页面,如果数据存在,该页面具有以下“ TableView ”元素: Table View 否则,页面会出现以下错误消息。 The acco
大家好我正在使用 webdriver 所以如果我想使用 selenium;s rc 函数 isElementPresent 我必须模拟 selenium rc 所以我做这样的事情: import or
我已将我的 Protractor 版本更新到 5.1.1 并将 node.js 更新到 6.10.2,现在我对该项目的所有测试都失败并出现以下错误:TypeError: browser.driver.
所以我正在尝试用 jasmine 运行一些测试,但我对整个事情还很陌生。我花了比我愿意承认的更多的时间来尝试弄清楚为什么我的 webdriver 在它有机会检查 '.detailsColumn' 元素
Selenium RC 中的元素 isElementPresent 和 isVisible 有什么区别。我明白了 selenium.isElementPresent() 和 selenium.isVi
HTML: 通过测试: expect(element(by.repeater('todo in todos')).isPresent()).t
我是一名优秀的程序员,十分优秀!