首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图在getText中断言WebdriverIO时出错

试图在getText中断言WebdriverIO时出错
EN

Stack Overflow用户
提问于 2020-01-09 20:29:50
回答 2查看 3.2K关注 0票数 2

我试图断言在媒体画廊覆盖页面上看到的文本。我只想让代码验证文本是否存在,如果是的话,它的资产与预期的文本匹配。

出于某种原因,我总是考试不及格。下面是我用可视化代码编写的代码:

代码语言:javascript
复制
let expSuccessARMessage = "See it in Your Space (Augmented Reality) is currently only available using an AR compatible Apple device (iOS 12 or above)."
let successARMessage = browser.getText(page.pageElements.arMessage);

console.log(successARMessage);
assert(successARMessage === expSuccessARMessage, 'Success message');

我在这里错过了什么?

EN

回答 2

Stack Overflow用户

发布于 2020-01-12 14:12:03

不是魔术师,但是您应该在控制台中获得browser.getText is not a function错误,因为getText()方法是在element对象中定义的,而不是在browser对象中定义的。阅读完整的API日志这里

所以你的代码应该是:

代码语言:javascript
复制
let expectedText = "Your long text here"
let foundText = $(page.pageElements.arMessage).getText();
// Considering 'page.pageElements.arMessage' is a valid selector for targeted element

console.log(`Found the following text: ${foundText}`);
assert.equal(expectedText, foundText, 'This is actually the ERROR message');

我想补充的是,还可以使用browser协议API提供以网络驱动程序对象为中心的方法。因此,我们的代码变成:

代码语言:javascript
复制
let expectedText = "Your long text here"
let elementObject = browser.findElement('css selector', page.pageElements.arMessage);
// Considering 'page.pageElements.arMessage' is a valid selector for targeted element
let foundText = browser.getElementText(elementObject.ELEMENT);

console.log(`Found the following text: ${foundText}`);
assert.equal(expectedText, foundText, 'This is actually the ERROR message');

后一种方法已经过时,WebdriverIO v5推荐的方法是使用$,分别是$$ (element &element)。但想给你一个更广阔的视角。

票数 2
EN

Stack Overflow用户

发布于 2021-10-14 11:38:23

如果将元素定义为对象存储库,如下所示:

代码语言:javascript
复制
get OtpDescriptionText () { return '//div[@class="otp-description"]'; }

为了实现控制台、断言/预期,您需要使用以下元素:

代码语言:javascript
复制
let elem1 = await $(RegistratonPage.OtpDescriptionText);
console.log(await elem1.getText());

代码语言:javascript
复制
await expect($(RegistratonPage.OtpDescriptionText)).toHaveTextContaining('We just need to check this phone number belongs to you.')

如果不使用$,则会引发错误

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59671638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档