Robot Framework: проблема при проверке текста после интервала - PullRequest
0 голосов
/ 11 октября 2018

В Robot Framework я пытаюсь проверить, существует ли «XXX» в исходном коде, следующим образом:

<button class='btn-aaa'>
<span class='bbb'>
XXX
</button>

Я пытался использовать следующие коды, но они потерпели неудачу:

Page Should Contain Element | //button/span/following-sibling::text()="XXX" 
---> Valid xpath but encountering error in Robot Framework with error message "InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression //button/span/following-sibling::text()="XXX" because of the following error: TypeError: Failed to execute 'evaluate' on 'Document': The result is not a node set, and therefore cannot be converted to the desired type." 

Page Should Contain Element | //button/span[@class='bbb']/following-sibling::contains(text(),"XXX")
---> Invalid xpath

Page Should Contain Element | //button/span[@class='bbb']/following-sibling::[contains(text(),"XXX")]
---> Invalid xpath

Может ли кто-нибудь предложить правильный способ проверки «XXX», используя правильный xpath в Robot Framework?

Ниже приведена информация об используемых инструментах:

  • версия каркаса робота 3.0.4
  • Версия Selenium 3.14.1
  • Версия Selenium2Library3.0.0
  • Python 3.6.6

Отредактировано:

Я очень ценю, что вы все пытаетесь помочь.Большое спасибо.Я постараюсь предоставить как можно больше информации, чтобы вы тоже могли мне помочь.

Я пытался:

//button[normalize-space()='View Data']

К сожалению, ничего не нашел.

Есть и другие кнопки, но есть только одна с текстом «Просмотр данных».

Вот более подробный код.Я не знаю, поможет ли это по сравнению с упрощенным, упомянутым ранее:

<button class="btn btn-submit float-left" type="button" onclick="return doActionParam('https://www.blabla.com/blabla',{op:'viewBla',blaId:'wxyz', activeTab:getActiveTabName()})">
<!--groupParent.-->
<span class="bongobongo"></span>
View Data
<button>

Надеюсь, на этот раз информация будет более полезной.Еще раз спасибо.

Дополнительная информация:

Браузер: Mozilla Firefox 62.0.3 (64 бита)

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Проблема в том, что ваша страница не содержит промежуток с текстом «XXX».На самом деле, это "новая строка, XXX, новая строка".Кроме того, ни у span, ни у кнопки нет родного брата (и, следовательно, нет последующего родного брата).

Вы можете игнорировать пробел, окружающий текст с помощью normalize-space.Например, следующее работает для меня, когда я создаю HTML-документ, идентичный тому, что у вас есть в вашем вопросе:

Page should contain element  //button[normalize-space()='XXX']

Это должно работать на обновленном примере в вашем коде, просто заменив XXX наView Data:

Page should contain element  //button[normalize-space()='View Data']
0 голосов
/ 11 октября 2018

Не могли бы вы попробовать этот xpath: //button[normalize-space()='XXX']

Ваш тест должен быть: Page Should Contain Element //button[normalize-space()='XXX']

...