Как дождаться частичного значения атрибута элемента в Katalon Studio - PullRequest
0 голосов
/ 31 октября 2018

Мое приложение использует изображения в виде светофора, чтобы сообщить об успешной отправке сообщения пользователю.

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 Dev Tools, при наведении курсора на элемент я вижу, что полный 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 голосов
/ 31 октября 2018

Похоже, в методе WebUI.waitForElementAttributeValue нет поддержки регулярных выражений.

Но вы можете добавить это условие непосредственно в css и использовать ожидание, пока элемент не появится.

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)
...