我在Java上为Selenium WebDriver编写了一个脚本,从下拉菜单中选择时遇到了问题。
这是我的定位器:
new Select(driver.findElement(By.id("FormElement_select_68_input_input"))).selectByVisibleText("Image");
以下是一个错误:http://prntscr.com/7jul03
以下是HTML代码:http://prntscr.com/7jvou6需要从此菜单中选择"图像",但出现错误。
在我出现这样的错误之前,我无法上传文件,因为我需要切换到第(0)帧。但在这里我不知道为什么我不能从DropBox中选择菜单"图像"。
你的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();
您要查找的元素id"FormElement_select_68_input_input"似乎不存在于html中,您的代码示例显示"FormElement.select_283_input_container"作为选择框元素。试试这个:
Select droplist = new Select(driver.findElement(By.Id("FormElement_select_283_input_container")));
droplist.selectByVisibleText("image");
因为它不是Select标记。
尝试使用以下逻辑
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();
根据HTML代码屏幕,我预计Select类(selectByVisibleText等)不起作用。你能做一件事吗,试着直接点击所需的选项。(可以点击"//div[@class='selectbox-wrapper']/ul/li[@class='selectbox_li'][contains(text(),'Image')]",检查一个是否正确)
让我知道结果。。如果它不起作用,如上所述,你需要点击输入下拉框,然后点击图像。
谢谢,Murali