2012-02-24 57 views
0

我正在使用robotframework和selenium2library测试一个extjs web应用程序,但我找不到一些HTML元素,因为它们被分配了一个动态ID。robotframework测试extjs应用

例如:selenium2library无法找到一个按钮,HTML代码是这样的:

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

我曾尝试使用细节XPath和CSS表达式,但他们没有工作。如何处理这个问题?任何帮助,将不胜感激。

我使用的工具是robotframework和selenium2library,它们用于自动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 
+1

好像你正在为你的问题挣扎一点。我试图编辑您的帖子以显示实际的HTML代码,但由于您的重复编辑而被删除。要显示HTML代码,请在包含代码的行的前面添加4个空格。 – ohaal 2012-02-24 09:12:19

+0

非常感谢。 – 2012-02-24 09:29:17

回答

0

我只想知道如何设置静态ID。如果您没有访问应用程序代码,我会要求开发人员为这些组件分配静态ID。 - 这将是恕我直言最简单的解决方案。

生成的ID通常意味着没人关心它们。

+0

谢谢,你的回答非常好。 – 2012-02-29 16:26:05

+0

我有一个问题,当我为一个元素设置一个静态ID例如