承诺:WebdriverIO UI测试仅在Chrome上运行,而不在Firefox,Safari上运行

时间:2018-07-25 13:41:25

标签: javascript selenium-webdriver automated-tests es6-promise webdriver-io

我创建了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上运行。我认为我在查找元素时做错了什么,我的版本与文档中的版本有所不同。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

问题不在于您的元素选择器,据我所知,这些选择器编写得都正确,而是您如何使用Chai。

WebdriverIO对不需要使用“最终”关键字的地方做了一些特殊的处理。尝试以下断言:testPage.getAddButton().should.equal('Create a new thing')

我使用类似的想法创建了一个测试示例,供您尝试运行: http://try.learnwebdriverio.com/share/dyhVLxYf897he6l4