【问题标题】:Checkbox and dropdownbox in seleniumselenium 中的复选框和下拉框
【发布时间】:2012-11-04 08:31:22
【问题描述】:

下面是我的代码

下面是一个标签。

    <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)最后的问题是这可以出现在网页的任何地方,每次我运行测试用例时。所以我需要使用字符串“代码”检查复选框,第二我需要从具有名称状态的下拉列表中选择值。有其他具有相同名称状态的下拉框。那么我具体如何做到这一点?

【问题讨论】:

  • 您应该尝试每个问题只问一个问题。此外,下拉问题似乎与您的 previous question 重复
  • 是的,但这次我也必须了解

标签: selenium selenium-rc selenium-webdriver selenium-ide


【解决方案1】:

要在包含文本“代码”的行中获取选择列表,您可以使用 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']")

【讨论】:

    【解决方案2】:

    只要 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-06
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 2019-11-19
      • 2019-11-08
      • 2013-06-09
      相关资源
      最近更新 更多