我创建了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上运行。我认为我在查找元素时做错了什么,我的版本与文档中的版本有所不同。有人可以帮忙吗?
答案 0 :(得分:1)
问题不在于您的元素选择器,据我所知,这些选择器编写得都正确,而是您如何使用Chai。
WebdriverIO对不需要使用“最终”关键字的地方做了一些特殊的处理。尝试以下断言:testPage.getAddButton().should.equal('Create a new thing')
我使用类似的想法创建了一个测试示例,供您尝试运行: http://try.learnwebdriverio.com/share/dyhVLxYf897he6l4