如何点击下拉列表并通过Selenium和Java选择一个选项?

时间:2018-06-07 06:26:24

标签: java selenium selenium-webdriver drop-down-menu webdriver

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

<select id="comp_drpdwn" data-select-id="f41d68e6-38b3-19cc-c392-3c9fc33690e8" class="initialized">
   <option value="0">Select Company</option>
   <option value="Acme~54sc234xb">Acme</option>
   <option value="Acme Bar &amp; Grill~TI17267302">Acme Bar &amp; Grill</option>
   <option value="Ball &amp; Chain~TI58377308">Ball &amp; Chain</option>

我的代码是:

WebElement element = driver.findElement(By.xpath(".//*[@id='comp_drpdwn']"));
Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perform();

3 个答案:

答案 0 :(得分:0)

这是一个选择标签。您可以使用Select class of selenium。

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

WebElement element = driver.findElement(By.xpath(".//*[@id='comp_drpdwn']"));
Select sel = new Select(element);
sel.selectByVisibleText("Acme");

答案 1 :(得分:0)

这应该有效:

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

答案 2 :(得分:0)

@ Murthi的方法几乎是正确的方向。由于元素是<select>元素,因此您必须使用Select类的实例。但似乎option代码的 VisibleText 属性包含动态文本(例如~54sc234xb)和特殊字符(例如{{1} }})。所以我的方法是使用selectByIndex(int index)方法,如下所示:

&amp;