-1

我要说可怕的话-我对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 来选择具有特定文本的标签

4

2 回答 2

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");
}

是不是很漂亮?

于 2012-07-18T18:25:19.527 回答
1

您可以尝试使用标签来代替吗?

selenium.select("state", "label=Alaska")

除非添加新状态,否则您可能会知道值是什么(似乎不太可能)

于 2012-07-19T09:02:27.860 回答