在Selenium中找到select元素

时间:2012-11-15 04:38:19

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

以下是组合框:

<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>
<option value="16">text3</option></select>
</TD>

我需要在组合框/下拉列表中选择text2。我使用了以下内容:

selenium.select("//select[starts-with(@name,status)","text2");

我遇到的问题是,它给我一个错误text2 not found。因为可能有其他选择框在这个相同的名称状态。所以我需要选择2下拉/组合框的第二个元素。

请提供解决方案。紧急。谢谢你提前

另一个td

<TD align="left" WIDTH="18%"><FONT ID="oldContent">
<select name="status" onchange="selectTime(this.options[this.selectedIndex].value)" id="newcontentformat">
<option value="" selected="selected"></option>
<option value="1">text100</option>
<option value="2">text200<</option>
<option value="3">text300<</option>
</TD>

5 个答案:

答案 0 :(得分:0)

我希望这应该有用

selenium.select("//td[@id='oldcontent']/select","label=text2")

答案 1 :(得分:0)

您是否尝试过选择标记的ID。

selenium.select("//select[@id='newcontentformat']","label=text2");

                               or

selenium.select("//td[@id='oldContent']/select[@id='newcontentformat']","label=text2");

答案 2 :(得分:0)

好。我会尝试使用css选择器解决方案:

String cssDropdown="select[id='newcontentformat']";
String csstext200="select[id='newcontentformat']>option[value='2']";
driver.findElement(By.cssSelector(cssDropdown)).click();
driver.manage().timeouts().implicitlyWait(1,TimeUnit.SECONDS);
//Thread.sleep(1000);
driver.findElement(By.cssSelector(csstext200)).click();

第二种方法: 如果支持jQuery,您可以使用以下内容:

 JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("var x=$(\'"+csstext200+"\');");
        stringBuilder.append("return x.click()");
        (String) js.executeScript(stringBuilder.toString());

希望有所帮助

答案 3 :(得分:0)

虽然这个解决方案不是绝对的,但它会起作用。 您可以使用以下方法找到此下拉列表:// select [@ name ='Status'] / following :: select [@ name ='Status']您可以根据下拉数量添加更多内容。你也可以在它之前使用它想要向后开始。  请浏览Selenium.1.0.Testing.Tools.Beginners.Guide Ebbok。

答案 4 :(得分:0)

WebDriver driver = new InternetExplorerDriver(); driver.get( “http://agra.quikr.com/”);         driver.findElement(By.xpath( “//选择[@ ID = 'alertcatSelectBox']”))的SendKeys( “工作”);

//为你的例子 driver.findElement(By.xpath( “//选择[@名称= '状态']”))的SendKeys( “文本2”);