我在頁面上有一個WebElements的定位器枚舉列表。我希望能夠使用枚舉的組合以及我希望選擇的選項的值的附加信息來選擇選擇框的特定選項。有沒有辦法做到這一點?我注意到By
類也有方法findElement(searchContext)
。我可以用這個作爲沿着線的東西:Selenium:搜索Java中的定位器子項
public enum Dictionary {
TYPE (By.id("vehType")),
PROVINCE (By.id("provId")),
TERRITORY (By.id("territoryId")),
STAT_CODE (By.id("statCodeId")),
CLASS (By.id("class1Id"));
private final By locator;
private DetailVehicleDictionary (By value) {
this.locator = value;
}
public By getLocation() {
return this.locator;
}
}
然後,如果類是用HTML選擇框:
<select id="class1Id" name="select_box">
<option value="1"/>
<option value="2"/>
<option value="3"/>
</select>
我可以做線沿線的東西:
WebElement specificValue = driver.findElement(Dictionary.CLASS.getLocation().findElement(By.cssSelector("option[value=2]"));
我需要訪問實際元素,以便我可以等待DOM中存在的值。我打算在等待命令實現這個功能,比如:
wait.until(ExpectedConditions.presenceOfElementLocated(specificValue));
您可以在'findElement'的結果執行'findElement',但alec的解決方案更好。 – Richard 2015-02-06 18:21:07