我正在测试一个电子/反应应用程序使用谱,它使用的WebdriverIO命令API。我想测试一些组件上的属性,但我想确定只有在组件重新加载之后才能测试它们。
普通的WebDriverIO等待命令(如waitForText()或waitForExist() )等待一些更改,但我需要等待组件重绘发生。例如,组件已经存在,或者在重绘之前已经有了一些文本。这意味着对文本的任何测试都将在重绘之前进行,而我将不会测试新文本。是否有一种等待重绘的一般方法?
发布于 2018-03-08 14:40:08
您可以使用自定义“waitUntil”命令来等待几乎任何事情。您需要弄清楚您在等待什么,或者如何判断组件已被重新绘制,但这应该是可能的。
有类名可以标记到吗?
此外,“waitFor”命令确实使用了否定标志,允许您等待元素停止存在或停止使用文本。那可能会有用。
发布于 2019-06-06 20:41:22
对于这个关于等待更改文本的特定问题,另一个解决方案是使用XPath选择器。XPath语言将HTML页面视为树,但文本以及其他内容也是该树中的一个单独的节点。与CSS选择器不同,您可以根据元素的内部文本轻松地选择元素。看这个文章。
因此,如果我的XPath选择器使用文本“谓词”,那么我可以使用webdriver中的标准waitForExist命令。
例如,我的p元素在重绘后应该有文本'Burgers‘。它确实存在于重绘之前,但它有一些其他文本。只有当它有新的next时才选择它:
const selector = '//*p[text()="Burgers"]';
browser.waitForExist(selector);https://stackoverflow.com/questions/49141686
复制相似问题