- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 end2end 测试有问题。有时他们会毫无问题地通过,但三分之二的时间他们会失败。我使用 Protractor 和以下代码:
describe('Admin dashboard delete Exports', function () {
it('create export', function () {
browser.get(e2GUrl + '/admin/studies');
ptor.wait(function() {
return ptor.isElementPresent(by.id('export'));
}, 5000, 'wait for study list page to be loaded.');
element(by.id('export')).click();
});
HTML(请注意,该元素是可见的,并且不会被 ng-if 或 ng-show 隐藏):
<ul>
<li data-ng-repeat="study in studies">
<div data-ng-controller="ExportController" class="btn-group">
<a id="export" class="btn btn-small dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fw-icon fw-icon-cloud-download"></i>Export
<span class="caret"></span>
</a>
<ul class="dropdown-menu export-list">
<li class="excel"><a data-ng-click="excel(study.Code)">Export to Excel</a>
</li>
</ul>
</div>
</li>
</ul>
我收到的错误:
E2E: Admin dashboard delete Exports create export Message: NoSuchElementError: No element found using locator: By.id("export")
最佳答案
我发现问题在于:element
isPresent()
和 isDisplayed()
所以如果你只等待 isPresent()
它可以在 html 中找到但尚未显示。
如果您只想使用elm.isDisplayed()
,则很棘手,如果元素尚不存在,它将崩溃。所以你必须先检查 isPresent() 在 isDisplayed()
我创建了一个等待 2 个属性阻塞的函数:
this.waitUntilReady = function (elm) {
browser.wait(function () {
return elm.isPresent();
},10000);
browser.wait(function () {
return elm.isDisplayed();
},10000);
};
describe('Admin dashboard delete Exports', function () {
it('create export', function () {
browser.get(e2GUrl + '/admin/studies');
waitUntilReady(element(by.id('export')));
element(by.id('export')).click();
});
关于angularjs - Protractor 等待 isElementPresent 并单击等待的元素失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28025342/
在 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
我是一名优秀的程序员,十分优秀!