#xpath #robotframework #assertion
Вопрос:
Как я могу утверждать, что значение «Баллов» не превышает 0?
Это веб-элемент
<div style="color: rgb(255, 0, 0); background-color: rgb(51, 17, 17); font-family: Helvetica, Arial, sans-serif; font-size: 9px; font-weight: bold; line-height: 15px;" xpath="1">Points: 0</div>
Я использую ожидание состояния элемента
*** Settings ***
Resource ../Resources/BrowserFunctions.robot
Suite Setup Start New Browser
Test Setup Test Setup
Test Teardown Test Teardown
Suite Teardown Close Browser
*** Test Cases ***
001_test
Tick Stats Widget Checkbox
wait for elements state //div[normalize-space()='Points: 0']
Ответ №1:
Возможно, это не самый эффективный способ…
-Сначала получите текст элемента
${Point}= Get text | element
-Получить подстроку, чтобы получить «0»
${Point}= Get substring | ${Point} | -1
-Преобразовать в целое число
${Point}= convert to integer | ${Point}
-Проверьте, не 0 ли это
should not be equal as integers | ${Point} | 0
Комментарии:
1. Просто измените получение подстроки с помощью регулярного выражения (значение может состоять из 2 или более цифр), и решение будет очень надежным.
2. @TodorMinakov не могли бы вы дать мне знать, как это сделать регулярным выражением?
3. @etoprak xpath изменится , очки будут равны 0, 200, 600…..it изменяется при подключении к внешнему аппаратному датчику. в этом случае , если текущий элемент xpath=»1″>Очков: 200>
4. @го, Это хороший вопрос, я не знал, что он может подняться так высоко. Но решением для этого было бы создание операторов if по длине всей строки (например, «Точек: 300»). Так, например, если длина равна 9 (одно число), вы делаете подстроку из последнего символа, а если длина равна 10, сделайте подстроку из последних 2 символов и так далее
5. @etoprak любой пример, как поступить, если еще с такими условиями?