如何单击下拉菜单并通过Selenium和Java选择选项?

如何单击下拉菜单并通过Selenium和Java选择选项?,java,selenium,selenium-webdriver,drop-down-menu,webdriver,Java,Selenium,Selenium Webdriver,Drop Down Menu,Webdriver,我正在尝试单击下拉按钮,代码运行成功,但在selenium中未单击下拉按钮 精选公司 顶点 acmebar&;烤架 鲍尔公司;链它是一个选择标记。您可以使用selenium的Select类 例如,要选择Acme选项,请尝试以下代码 WebElement element = driver.findElement(By.xpath(".//*[@id='comp_drpdwn']")); Select sel = new Select(element); sel.selectByVisib

我正在尝试单击下拉按钮,代码运行成功,但在selenium中未单击下拉按钮


精选公司
顶点
acmebar&;烤架

鲍尔公司;链
它是一个选择标记。您可以使用selenium的Select类

例如,要选择Acme选项,请尝试以下代码

WebElement element = driver.findElement(By.xpath(".//*[@id='comp_drpdwn']"));
Select sel = new Select(element);
sel.selectByVisibleText("Acme");
这应该起作用:

WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='comp_drpdwn']"))); 
Select select = new Select(element);
select.selectByVisibleText("Acme");

@默西的方法几乎是正确的。由于元素是
元素,因此必须使用类的实例。但是,
选项
标记的可见文本属性似乎包含动态文本(例如
~54sc234xb
)和特殊字符(例如
&;
)。因此,我将采用以下方法:

WebElement elem = driver.findElement(By.xpath("//select[@class='initialized' and @id='comp_drpdwn'][@data-select-id]"));
Select select = new Select(elem);
select.selectByIndex(1);

提供一些上下文如何?在不知道网页结构的情况下,没有人能判断您的xpath是否有意义。您可以共享web应用程序的URL吗?@Buaban我如何共享URL和凭据?@Saravanan请在您的问题中添加它们。如果是专有软件,您可以共享更多HTML。我猜它不是一个简单的select元素。我正在尝试上面的代码,但它显示的错误如下:org.openqa.selenium.ElementNotVisibleException:element NotVisibleException:element当前不可见,可能无法操作(会话信息:chrome=67.0.3396.62)(驱动程序信息:chromedriver=2.39.562718您可能需要等待元素的可见性。当我将鼠标移到元素上时,显示的html是:这是我的最新代码:WebDriverWait wait=new WebDriverWait(驱动程序,10);WebElement element=wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(//input[@value='R3PORTS,INC']));WebElement element1234=driver.findElement(By.xpath(“//input[@value='R3PORTS,INC']);element1234.click();显示的错误是:显示的错误是:org.openqa.selenium.WebDriverException:未知错误:元素在点(223,28)处不可单击。其他元素将收到单击:上述代码显示的错误,如:org.openqa.selenium.ElementNotVisibleException:元素不可见:元素当前不可见且可能不可见manipulated@Saravanan您能用select节点的outerHTML更新这个问题吗?