Вопрос

Я проверяю веб-приложение Extjs, используя Robotframework и Selenium2Library, но я не могу найти некоторые элементы HTML, потому что они назначают динамический идентификатор.

Например: Selenium2Library не может найти кнопку, какой HTML-код такой:

<button type="button" id="ext-gen56" class=" x-btn-text silk-add">create vm</button>
.

Я пытался использовать детали XPath и CSS выражения, но они не работают.Как бороться с этой проблемой?Любая помощь будет оценена.

Какие использованные я используемые инструменты ROBOTFRAMEWORK и SELENIUM2Library, которые используются для автоматического тестирования веб-приложения.

Parts of my test script:

 // filename is A.txt
 //this is  a resource file including keywords which are used by testcase file 
*** Keywords *** 
open vmmanager page
    [Timeout]
    click element    xpath=//table[3]/tbody/tr[2]/td[2]/em/button

create vm
    [Arguments]    ${vm_name}    ${input_description}
    click element    xpath=//table[3]/tbody/tr[2]/td[2]/em/button
    click element    xpath=//td[2]/table/tbody/tr[2]/td[2]/em/button
    click link    xpath=//tbody/tr/td[5]/div/a
    click link    xpath=//tbody/tr/td[7]/div/a
    input text    xpath=//div/div/input    ${vm_name}
    click image    xpath=//div/div/img
    click element    xpath=//div[22]/div/div
    click image    xpath=//div[3]/div/div/img
    click element    xpath=//div[19]/div/div

name is null
    alert should be present    ${expect}
    click button    xpath=//div[2]/div/div/div/div/table/tbody/tr/td/em/button
    click button    xpath=//td[5]/table/tbody/tr[2]/td[2]/em/button

contact engineer
    alert should be present    
    click button    ext-gen311

//filename is B.txt
//this is testcase file
*** Settings ***
Resource       fiel A.txt   

*** Test Cases ***
VC_VM_01
    open vmmanager page
    create vm    ${empty}    description
    name is null

VC_VM_03
    open vmmanager page
    create vm    valentine    day
    contact engineer
.

Это было полезно?

Решение

Я бы просто узнал, как установить статические идентификаторы.Если у вас нет доступа к коду приложений, я бы попросил, чтобы разработчики назначали статические идентификаторы для компонентов.- Это было бы имхо самое простое решение.

сгенерированные идентификаторы просто обычно означают, что никто еще не заботится о них.

Другие советы

Без идентификаторов, вы можете проверить, используя _near и _ _ _

Большинство элементов будут иметь текст на них.

xpath=//button[contains(text(), 'create vm')]
.

Общий подход будет

xpath=//*[contains(text(), 'create vm')]
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top