【发布时间】:2017-02-21 15:50:02
【问题描述】:
通过 Eclipse IDE 使用 Java 测试 firefox。 以下是我要测试的网站的 HTML 代码:
<td class="selectCommandHolder">
<select id="MainContent_DropDownQueryField" name="ctl00$MainContent$DropDownQueryField" aria-invalid="false">
<option value="ICAO" selected="selected"> ICAO </option>
<option value="IATA"> IATA </option>
<option value="Airfields.Name"> Name </option>
<option value="City"> City </option>
<option value="States.Name"> State </option>
</select>
</td>
默认选项是第一个,“ICAO”。 试图让我的测试通过值选择第二个“IATA”。 Selenium java代码如下:
WebElement searchOption = driver.findElement(By.id("MainContent_DropDownQueryField"));
Select searchIATA = new Select(searchOption);
WebElement selected_value = searchIATA.getFirstSelectedOption();
System.out.println("Selected values is "+ selected_value.getText());
Thread.sleep(1000);
searchIATA.selectByValue("IATA");
if (searchIATA.getFirstSelectedOption().getText().trim().equals("IATA")){
System.out.println("succesfully selected IATA.");
} else{
System.out.println("selected value is not IATA, it is:" + selected_value.getText());
}
由于某种原因,我无法选择 IATA,尽管我相信我正在正确地尝试定位它。我的控制台输出如下所示:
1487691940734 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef
1487691940749 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef
1487691940760 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef
1487691940769 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef
1487691940777 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef
Selected values is ICAO
1487691941789 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef
1487691941795 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef
1487691941801 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef
1487691941822 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef
1487691941829 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef
Selected values is not IATA, it is: ICAO
我可以打印“allSelectedOptions”,它会显示上面的“选项值”列表。我在这里错过了什么?
【问题讨论】:
标签: java selenium select dropdown