javascript - 承诺:WebdriverIO UI 测试仅在 Chrome 上运行,不适用于 Firefox、Safari
问题描述
我已经创建了 test.page.js,我在页面上设置了元素。我想找到添加按钮。这是我的代码:
import Page from './page';
class TestPage extends Page {
get addButton() {
return browser.element('#add-button > a');
}
getAddButton() {
return this.addButton.getText();
}
根据文档,下面的示例应该可以工作,但不能。它返回待处理的承诺:
import Page from './page';
class LoginPage extends Page {
get username() { return browser.element('#username'); }
在我的 test.spec.js 文件中,我使用 chai 作为对 Chai 库的承诺扩展来断言这个元素:
import testPage from '../pageobjects/test.page';
it('should validate if Add button exists', (done) => {
testPage.getAddButton().should.eventually.be.equal('Create a new thing').notify(done);
});
它适用于 Chrome,但在 Firefox 或 Safari 上失败。我认为我在定位元素方面做错了,我的版本与文档版本不同。有人可以帮忙吗?
解决方案
问题不在于您的元素选择器,据我所知,这些选择器都是正确编写的,而在于您如何使用 Chai。
WebdriverIO 对您不需要使用“最终”关键字的地方做了一些特殊的魔法。试试这个断言:testPage.getAddButton().should.equal('Create a new thing')
我使用类似的想法创建了一个测试示例,供您尝试运行: http ://try.learnwebdriverio.com/share/dyhVLxYf897he6l4
推荐阅读
- python-sphinx - 未知的自定义解释文本角色警告
- jenkins - 如何访问在特定构建的 groovy 脚本中创建的工件
- java - 如何在java中使形状成为随机颜色
- git - 从 origin/master 创建一个 git 分支
- css - CSS:在 Bootstrap 手风琴中仅旋转 SVG 图像,而不是按钮文本
- mysql - 计算第二大工资
- c# - CefSharp Browser cookies, set, get, string, control C#
- python - 我正在尝试将此用于循环打印输出导出到文件中。我试图输出为文本并创建一个数据框
- vba - 将变量的输出值拆分为工作表中的 2 行
- mongodb - Mongoose,更新另一个数组内的数组内的对象