如何在Katalon Studio中等待部分元素属性值

时间:2018-10-31 12:15:08

标签: html selenium selenium-webdriver automated-tests katalon-studio

我的应用程序使用交通信号灯样式的图像来报告消息发送回给用户的成功。

图像的HTML是这样的:

<img src="images/green.gif" border="0" style="width: 15px; height: 15px; position: relative; left: -1px; top: 1px;">
<img src="images/orange.gif" border="0" style="width: 15px; height: 15px; position: relative; left: -1px; top: 1px;">
<img src="images/red.gif" border="0" style="width: 15px; height: 15px; position: relative; left: -1px; top: 1px;">

因此,当您单击发送消息的按钮时,图像会保持橙色一段时间,然后变为红色或绿色。

但是,尽管“ images / green.gif”是Chrome开发工具中显示的源属性,但是当我将鼠标悬停在元素上时,我可以看到完整的src类似于“ https://myapp.com/production/images/green.gif”,其中第一部分URL的变化取决于所使用的服务器。

现在,我想在Katalon Studio脚本中做到这一点:

TestObject myTestObject = new TestObject('My test object').addProperty('css', ConditionType.EQUALS, '.some-class-name img')
WebUI.waitForElementAttributeValue(myTestObject, 'src', 'images/green.gif', 30)

但是,Katalon会看到全名的图片的'src'属性,因此它将在30秒后超时。

有没有办法等到属性包含某个字符串?

1 个答案:

答案 0 :(得分:3)

WebUI.waitForElementAttributeValue方法中似乎不支持正则表达式。

但是您可以直接在CSS中添加该条件,并使用wait直到元素出现。

TestObject myTestObject = new TestObject('My test object').addProperty('css', ConditionType.EQUALS, ".some-class-name img[src='images/green.gif']")
WebUI.waitForElementPresent(myTestObject, 30)

或简称为

TestObject myTestObject = new TestObject('My test object').addProperty('css', ConditionType.EQUALS, ".some-class-name img[src*='green']")
WebUI.waitForElementPresent(myTestObject, 30)