我会说可怕的话 - 我对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来选择具有特定文本的标签
答案 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;)
除非新州增加(似乎不太可能),否则你很可能知道这些价值是什么