1

下面是我的代码

下面是一个标签。

    <TR id="oldcontent" bgcolor="#D0D0D0">
    <TD id="ignore" style="vertical-align:middle">      
    <input type="checkbox" name="selectedId" value="22047"onclick="updateSelectionList('<%=campaign.getId()%>')">
    </TD>
   <TD  id="oldcontent">Code</TD>
    <TD ALIGN="left" id="oldcontent">
    <select name="status" style="width=150" id="newcontentformat">
    <option value="14" selected="selected">text1</option>
    <option value="15">text2</option>
    </TD>
<TR>        

在这里 1) 我需要单击没有任何字符串的动态生成值的复选框。2)我可以根据复选框后面出现的文本“代码”来选择复选框吗?3)我需要在下拉列表中选择带有名称状态的 text2 4)最后的问题是这可以出现在网页中的任何位置,每次我运行测试用例时。所以我需要使用字符串“代码”检查复选框,第二次我需要从具有名称状态的下拉列表中选择值。还有其他具有相同名称状态的下拉框。那么我该如何具体做到这一点?

4

2 回答 2

2

要在具有文本“代码”的行中获取选择列表,可以使用 xpath:

//tr[./td[text()='Code']]/td/select

同样,对于复选框,您可以使用 xpath:

//tr[./td[text()='Code']]/td/input[@type='checkbox']

我相信你想要的硒代码是:

selenium.select("//tr[./td[text()='Code']]/td/select", "text2")
selenium.check("//tr[./td[text()='Code']]/td/input[@type='checkbox']")
于 2012-11-15T18:02:38.060 回答
0

只要 HTML 中有可用的名称,您就可以使用 Name 来定位元素。

  1. 对于单击复选框,您可以编写:

    selenium.click(//input[@name='selectedId']);
    
  2. 使用文本定位器去复选框应该是这样的:

    //div[text()='text you want to precede']/preceding::input[@name='selectedId'];
    

    (在这里您可以使用任何属性而不是名称。)

  3. 从 dropdowm 提取文本:

    selenium.select(//select[@name='status'],"text2");
    

如果您使用此类定位器(与位置无关),无论您的元素出现在屏幕上的哪个位置,您都可以借助这些定位器进行定位......

了解更多关于定位之前或之后的信息 下载电子书:Selenium.1.0.Testing.Tools.Beginners.Guide

于 2012-11-16T06:24:20.673 回答