如何使用Java在Selenium WebDriver中select下拉值

selenium是新来的,目前正在工作在seleniumwebdriver我想从下拉列表中select一个值。 ID = periodId和选项是很多,在试图select过去52周。

这是Html标签:

<select id="periodId" name="period" style="display: none;"> <option value="l4w">Last 4 Weeks</option> <option value="l52w">Last 52 Weeks</option> <option value="daterange">Date Range</option> <option value="weekrange">Week Range</option> <option selected="" value="monthrange">Month Range</option> <option value="yeartodate">Year To Date</option> </select> 

请build议我点击下拉菜单。

我试着用上面的例子行,但得到错误,如元素是目前不可见,所以可能不会与命令持续时间或超时交互:32毫秒的下拉列表值是jQuery多选控件的格式

只需将您的WebElement包装到Select Object中,如下所示

 Select dropdown = new Select(driver.findElement(By.id("identifier"))); 

一旦完成,您可以通过3种方式select所需的值。 考虑一个像这样的HTML文件

 <html> <body> <select id = "designation"> <option value = "MD">MD</option> <option value = "prog"> Programmer </option> <option value = "CEO"> CEO </option> </option> </select> <body> </html> 

现在确定下拉菜单

Select dropdown = new Select(driver.findElement(By.id("designation")));

要select它的选项说'程序员',你可以做

dropdown.selectByVisibleText("Programmer ");

要么

dropdown.selectByIndex(1);

要么

  dropdown.selectByValue("prog"); 

如果你想在一行写所有尝试

 new Select (driver.findElement(By.id("designation"))).selectByVisibleText("Programmer "); 

如上所述,我们需要在Selenium中实现Select类,进一步我们可以使用各种可用的方法,如: 在这里输入图像描述

在selenium中,从下拉菜单中select随机值。

实际上, select会select,但不会将选定的值放到相应的字段中。 在哪里想知道下面的片段完美的作品

 driver.findElement(By.name("period")).sendKeys("Last 52 Weeks"); 

代码来select下拉菜单

selectselect = new Select(driver.findElement(By.xpath(“// select [@ id ='periodId']));

代码来selectparticaular选项

select.selectByVisibleText(Last 52 Weeks);

您可以使用以下方法处理selenium中的下拉菜单。

  1. driver.selectByVisibleText( “文本”);
  2. driver.selectByIndex(1);
  3. driver.selectByValue( “PROG”);

欲了解更多详情,可以参考http://www.codealumni.com/handle-drop-selenium-webdriver/这篇文章。;

它肯定会帮助你解决你的查询。

同意KodS的回复。 另外,你需要导入org.openqa.selenium.support.ui.Select; select工作。

 WebDriver driver = new FirefoxDriver(); WebElement identifier = driver.findElement(By.id("periodId")); Select select = new Select(identifier); select.selectByVisibleText("Last 52 Weeks"); 

我还没有尝试在selenium,但对盖伦testing这是工作,

var list = driver.findElementByID(“periodID”); //这将返回web元素

list.click(); //这将打开下拉列表。

list.typeText( “14瓦特”); //这将select选项“14w”。

您可以在selenium试试这个,盖伦和selenium工作是相似的。

首先将软件包导入为:

import org.openqa.selenium.support.ui.Select;

然后写在单行中作为:

new Select(driver.findElement(By.id(“sampleid”)))。selectByValue(“SampleValue”);

尝试这个:

 driver.findElement(By.name("period")).sendKeys("Last 52 Weeks");