Утверждение значение элемента не более 0

#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 любой пример, как поступить, если еще с такими условиями?