gpt4 book ai didi

javascript - Promises : WebdriverIO UI tests are running only on Chrome, 不适用于 Firefox、Safari

转载 作者:行者123 更新时间:2023-12-03 01:26:27 25 4
gpt4 key购买 nike

我创建了 test.page.js,在页面上设置了元素。我想找到“添加”按钮。这是我的代码:

import Page from './page';

class TestPage extends Page {
get addButton() {
return browser.element('#add-button > a');
}
getAddButton() {
return this.addButton.getText();
}

根据文档,下面的示例应该可以工作,但事实并非如此。它返回待处理的 promise :

import Page from './page';

class LoginPage extends Page {

get username() { return browser.element('#username'); }

在我的 test.spec.js 文件中,我使用 chai 作为 Chai 库的 promise 扩展来断言此元素:

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

关于javascript - Promises : WebdriverIO UI tests are running only on Chrome, 不适用于 Firefox、Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51520430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com