WebDriver无法获取下拉菜单元素(Java)

时间:2015-06-22 10:05:54

标签: java selenium webdriver junit4

我在Selenium WebDriver的Java上编写了一个脚本,我从下拉菜单中选择了一个问题。

这是我的定位器:

new Select(driver.findElement(By.id("FormElement_select_68_input_input"))).selectByVisibleText("Image");

这是一个错误:http://prntscr.com/7jul03

这是HTML代码:http://prntscr.com/7jvou6 需要从此菜单中选择“图像”,但有错误。

在我遇到这样的错误之前,我无法上传文件,因为我需要切换到frame(0)。 但在这里我不知道为什么我不能从DropBox中选择菜单“Image”。

4 个答案:

答案 0 :(得分:1)

您的ID是动态的,因此您无法使用它。选择在您的情况下不起作用,您只需要两次点击

WebElement dropdown = driver.findElement(By.xpath("//div[@class='select-pad-wrapper AttributePlugin']/input"));
dropdown.click();
WebElement element = driver.findElement(By.xpath("//div[@class='select-pad-wrapper AttributePlugin']/div/ul/li[text()='Image']"));
element.click();

答案 1 :(得分:0)

您的html中不存在您要查找的元素ID“FormElement_select_68_input_input”,您的代码示例将“FormElement_select_283_input_container”显示为选择框元素。试试这个:

Select droplist = new Select(driver.findElement(By.Id("FormElement_select_283_input_container")));   
droplist.selectByVisibleText("image");

答案 2 :(得分:0)

因为它不是Select tag。

尝试以下逻辑

WebElement div = driver.findElement(By.cssSelector("div[id*='FormElement_'] > div > div"));
div.click();
WebElement li = div.findElement(By.xpath(".//ul/li[text()='Image']"));
li.click();

答案 3 :(得分:0)

根据HTML代码屏幕,我希望Select类(selectByVisibleText等)不起作用。你可以做一件事,试着直接点击所需的选项。 (可点击“// div [@ class ='selectbox-wrapper'] / ul / li [@ class ='selectbox_li'] [contains(text(),'Image')]”,检查一个是否正确或不在火道中)

让我知道结果..如果它不起作用,如上所述,你需要点击该输入下拉框并需要点击该图像。

谢谢你, 穆拉利