Domanda

Sto testando un'app Web EXTJS utilizzando RobotFramework e Selenium2Library, ma non posso individuare alcuni elementi HTML perché vengono assegnati un ID dinamico.

Ad esempio: Selenium2Library non è stato possibile individuare un pulsante quale codice HTML come questo:

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

Ho provato a utilizzare Dettaglio XPath e Espressione CSS, ma non funzionano.Come affrontare questo problema?Qualsiasi aiuto sarebbe apprezzato.

Quali sono gli strumenti che ho utilizzato sono RobotFramework e Selenium2Library che vengono utilizzati per il test automatico dell'app Web.

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
.

È stato utile?

Soluzione

Avrei solo come impostare gli ID statici.Se non hai accesso al codice dell'applicazione, chiederei che gli sviluppatori assegnino gli ID statici per i componenti.- Questo sarebbe l'IMHO la soluzione più semplice.

ID generati di solito significa che nessuno ci interessa ancora.

Altri suggerimenti

Senza IDS, è possibile testare l'uso di _Near e _under dal framework di Automazione Sahi ... Lo sto usando, la sua open source..have pazienza per provare diversi modi per identificare gli elementi ... è bello e buono ...

La maggior parte degli elementi avrà un testo presente su di loro.

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

Un approccio generico sarà

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top