приложение для тестирования роботов - PullRequest
0 голосов
/ 24 февраля 2012

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

Например: selenium2library не может найти кнопку с кодом HTMLкак это:

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

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

Какие инструменты я использовал, это роботизированная конструкция и библиотека 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

Ответы [ 3 ]

0 голосов
/ 10 июля 2012

Без идентификаторов вы могли бы тестировать, используя _near и _under из среды автоматизации Sahi ... Я использую его, его Open Source ... терпение, чтобы попробовать различные способы идентификации элементов ... это круто и хорошо ...

0 голосов
/ 27 февраля 2019

На большинстве элементов будет присутствовать текст.

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

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

xpath=//*[contains(text(), 'create vm')]
0 голосов
/ 26 февраля 2012

Я бы просто узнал, как установить статические идентификаторы.Если у вас нет доступа к коду приложения, я бы попросил разработчиков назначить статические идентификаторы для компонентов.- это будет ИМХО самое простое решение.

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

...