Selenium选择下拉选项

时间:2012-07-18 16:42:11

标签: java select selenium

我会说可怕的话 - 我对java来说相当新鲜

但我无法在最明显的地方找到我的答案,所以我会在这里提出问题

我正在测试的程序是一个客户数据库,当您选择“国家/地区”下拉框时,其他字段可能成为必填字段 其中包括“国家” 此字段可以是自由文本或下拉框

所以我创建了一个if语句,如果不满足状态下拉框的条件,我可以输入自由文本:

if (selenium.isElementPresent("xpath=//*[@id='state']/option[2]"))
{selenium.select("xpath=//select[@id='state']/option","index=2" );}

else    {checkfield("xpath=//td[contains(.,'State/Province:')]/
preceding-sibling::td[contains(.,'*')]", 
        "xpath=//*[@id='address.state']",
        state1);}

<td>
<!-- begin state drop down menu -->
<select id="state" name="address.state">
<option selected="selected" value="">Please Select</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="WY">Wyoming</option>
</select>
<!-- end state drop down menu -->
</td>

我的问题可能是一个非常基本的问题,你们可能已经看到我的代码失败了

如果存在下拉框,我想选择下拉框的选项2,否则输入已在自由文本框中声明的字符串

到目前为止我只使用selenium.select来选择具有特定文本的标签

2 个答案:

答案 0 :(得分:2)

首先:升级到Selenium WebDriver

Selenium 1.0只是一个不死生物。

这是使用WebDriver的方法:

if(stateDropdown.isEnabled()&&(!stateField.isEnabled())){

    Select state = new Select(stateDropdown);
    // state.selectByValue("Illinois");
    state.selectByIndex(2);


}else if(stateField.isEnabled()&&(!stateDropdown.isEnabled){
    stateField.sendKeys("Salzburg");
}

不是很漂亮吗?

答案 1 :(得分:1)

您可以尝试使用标签吗?

selenium.select(&#34; state&#34;,&#34; label = Alaska&#34;)

除非新州增加(似乎不太可能),否则你很可能知道这些价值是什么