Проверка наличия одного текста из 2-х текстов на странице с помощью selenium2library & Robot Framework

Я хочу проверить, содержит ли страница «ТЕКСТ1 или «ТЕКСТ2».

Страница должна содержать ТЕКСТ1 или ТЕКСТ2.

Любое предложение, как я могу это сделать? В настоящее время я могу проверить только один текст.


person HamSmith    schedule 27.02.2013    source источник
comment
Почему вы можете проверить только один фрагмент текста?   -  person Arran    schedule 27.02.2013
comment
Синтаксис: страница должна содержать текст, loglevel=INFO. Однако моя страница может содержать один из двух разных текстов.   -  person HamSmith    schedule 27.02.2013


Ответы (4)


Вы можете использовать

Page Should Contain Element

с локатором

xpath=//*[contains(text(),'TEXT1') or contains(text(),'TEXT2')]
person Petr Janeček    schedule 28.02.2013
comment
Моя единственная проблема с использованием xpath заключается в том, что он отлично работает в Chrome и Firefox, но не в IE. - person HamSmith; 03.03.2013
comment
@HamSmith Не могли бы вы быть более конкретными? В IE (и других браузерах без встроенной поддержки XPath) Selenium использует Wicked, созданный Google. Хорошая библиотека XPath, которая должна быть в полном порядке. Если это не так, то это либо ошибка на их стороне, либо тесткейс написан слишком оптимистично (потому что, как всегда, IE все усложняет). Попробуйте решить свою проблему, немного изучите ее, а затем сообщите об ошибке или спросите здесь. - person Petr Janeček; 03.03.2013
comment
Большое спасибо Slanec, я проведу исследование и вернусь на этот форум. Еще раз спасибо за вашу помощь. - person HamSmith; 04.03.2013
comment
Вы также можете использовать локатор jQuery, например jQuery=#myelement:contains('TEXT1'), #myelement:contains('TEXT2') - person domruf; 21.08.2014

Спасибо Slanec за информацию.

Я также нашел другой способ решить эту проблему, просто используя Robot Framework, он выглядит так.

@{VAR1} = Запустить ключевое слово и игнорировать ошибку Подождать, пока страница не будет содержать TEXT1 Запустить ключевое слово, если '@{VAR1}[0]' == 'FAIL' Подождать, пока страница не будет содержать TEXT2

Так как текст может быть ТЕКСТ1 или ТЕКСТ2 в зависимости от сценария.

person HamSmith    schedule 01.03.2013

Используйте следующие три утверждения:

Пройти выполнение, если '${var1}' == 'TEXT1'

Пропустить выполнение, если '${var1}' == 'TEXT2'

Потерпеть неудачу

person Chandima Prematillake    schedule 03.09.2013

${t1 present}=  Run Keyword And Return Status  Page Should Contain  TEXT1
Run Keyword If  not ${t1 present}  Page Should Contain  TEXT2

После строки 1 ${t1 present} равно True, если присутствует ТЕКСТ1; если это так, проверка в строке 2 не будет выполняться. Если это False, то страница проверяется на наличие ТЕКСТА2, и если его нет, произойдет сбой.

person Todor Minakov    schedule 20.04.2017