首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让WebdriverIO等待某个特定组件重新加载

让WebdriverIO等待某个特定组件重新加载
EN

Stack Overflow用户
提问于 2018-03-06 23:25:59
回答 2查看 3.2K关注 0票数 4

我正在测试一个电子/反应应用程序使用谱,它使用的WebdriverIO命令API。我想测试一些组件上的属性,但我想确定只有在组件重新加载之后才能测试它们。

普通的WebDriverIO等待命令(如waitForText()waitForExist() )等待一些更改,但我需要等待组件重绘发生。例如,组件已经存在,或者在重绘之前已经有了一些文本。这意味着对文本的任何测试都将在重绘之前进行,而我将不会测试新文本。是否有一种等待重绘的一般方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-08 14:40:08

您可以使用自定义“waitUntil”命令来等待几乎任何事情。您需要弄清楚您在等待什么,或者如何判断组件已被重新绘制,但这应该是可能的。

有类名可以标记到吗?

此外,“waitFor”命令确实使用了否定标志,允许您等待元素停止存在或停止使用文本。那可能会有用。

票数 5
EN

Stack Overflow用户

发布于 2019-06-06 20:41:22

对于这个关于等待更改文本的特定问题,另一个解决方案是使用XPath选择器。XPath语言将HTML页面视为树,但文本以及其他内容也是该树中的一个单独的节点。与CSS选择器不同,您可以根据元素的内部文本轻松地选择元素。看这个文章

因此,如果我的XPath选择器使用文本“谓词”,那么我可以使用webdriver中的标准waitForExist命令。

例如,我的p元素在重绘后应该有文本'Burgers‘。它确实存在于重绘之前,但它有一些其他文本。只有当它有新的next时才选择它:

代码语言:javascript
复制
const selector = '//*p[text()="Burgers"]';
browser.waitForExist(selector);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49141686

复制
相关文章

相似问题

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