我正在尝试从下拉列表中选择国家/地区代码,其中元素没有索引或ID我只能按值选择,我尝试使用SelectByValue& VisibleText两者都没有工作也尝试列出元素和循环,但没有工作
更新
它给了我错误:org.openqa.selenium.support.ui.UnexpectedTagNameException: Element should have been “select” but was “button”
如何从带有元素列表的按钮中选择?
这是代码:
public void selectInDropDownMenuCountryCode(final WebDriver driver, final By selector, final String selection) {
_wait.until(ExpectedConditions.visibilityOfElementLocated(selector));
final Select select = new Select(driver.findElement(selector));
//select.selectByVisibleText(selection);
//select.selectByValue(selection);
String code;
List<WebElement> optionsD = select.getOptions();
for (WebElement option : optionsD) {
code = option.getAttribute("value");
if (code == selection) {
option.click();
break;
}
}
}
html的屏幕截图
答案 0 :(得分:0)
如果您引用HTML
,则可以看到Dropdown
未使用HTML Select
标记构建。因此,您无法使用以下方法: -
您必须使用常规方法识别元素以处理下拉列表。例如:尝试通过识别元素单击下拉列表,然后再次单击国家/地区名称以选择值。
答案 1 :(得分:0)
尝试使用简单的click()
方法选择所需的下拉选项:
_wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(text(), 'Egypt (+20)')]"))).click();
XPath
,例如"//a[@country='Egypt']"
或"//a[@value='EG']"
似乎也适用
请注意,在单击其选项
之前,应单击相应元素以打开下拉列表