[英]Not able to select option from drop down list in selenium webdriver with java
[英]unable to select the drop down list in selenium webdriver in java
這是我的硒webdriver代碼
package com.ej.zob.modules;
import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.Select;
public class Employee {
public void Execute(String TopLink,String UserName,String Password,String Email,String CreatedOn, String RoleName,String FirstName,String LastName, String Company, String Phone ){
LaunchApplication.driver.findElement(By.className(TopLink)).click();
LaunchApplication.driver.findElement(By.id("field-username")).sendKeys(UserName);
LaunchApplication.driver.findElement(By.id("field-password")).sendKeys(Password);
LaunchApplication.driver.findElement(By.id("field-email")).sendKeys(Email);
LaunchApplication.driver.findElement(By.id("field-created_on")).sendKeys(CreatedOn);
//LaunchApplication.driver.findElement(By.tagName("")
LaunchApplication.driver.findElement(By.linkText("Select Role Name")).click();
LaunchApplication.driver.findElements(By.id("field-role_name"));
//LaunchApplication.driver.findElement(By.className("chzn-drop"));
//sel.selectByIndex(5);
//sel.selectByVisibleText(RoleName);
LaunchApplication.driver.findElement(By.id("field-first_name")).sendKeys(FirstName);
LaunchApplication.driver.findElement(By.id("field-last_name")).sendKeys(LastName);
LaunchApplication.driver.findElement(By.id("field-company")).sendKeys(Company);
LaunchApplication.driver.findElement(By.id("field-phone")).sendKeys(Phone);
//LaunchApplication.driver.findElement(By.id("form-button-save")).click();
}
}
這是我的html代碼
<select id="field-role_name" class="chosen-select chzn-done"
data-placeholder="Select Role Name" name="role_name"
style="display: none;">
<option value=""></option>
<option value="ADMIN"></option>
<option value="BM"></option>
<option value="SM"></option>
<option value="BT"></option>
<option value="ITOP"></option>
<option value="GUEST"></option>
<option value="COH"></option>
<option value="BEOP"></option>
<option value="SA"></option>
</select>
我想從下拉菜單中選擇“ Admin”。 還要檢查field-role_name的代碼,我也寫了findelemnts(By.id(“ field-role_name”)),由於這個原因,我的下拉列表僅打開了未選擇任何值的位置,因此如何選擇一個值。
從WebElement創建一個Select對象並選擇一個值
Select select = new Select(LaunchApplication.driver.findElement(By.cssSelector("select[id$='field-role_name']"));
select.selectByValue("ADMIN");
如果對象是隱藏的,這將失敗。 “顯示:無”建議這樣做。
如果您無法更改網頁,則選擇隱藏,則必須使用javascript進行選擇。
((JavascriptExecutor)LaunchApplication.driver).executeScript($("option[val=ADMIN]").prop("selected",true);');
使用下面的webdriver代碼從您的方案的下拉列表中選擇一個值:
new Select(driver.findElement(By.id("field-role_name"))).selectByValue("ADMIN");
你可以這樣做
import java.util.ArrayList;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Select;
public class DropDownHandler
{
private WebDriver driver;
private String parentName;
private Select fromPort;
public DropDownHandler(WebDriver driver, String parentName)
{
this.driver = driver;
this.parentName = parentName;
}
public void selectDropDownValue(String selectvalue)
{
Select fromPort = new Select(driver.findElement(By.name(parentName)));
List<WebElement> dropDwonList = new ArrayList<WebElement>();
dropDwonList = fromPort.getOptions();
for(WebElement temp:dropDwonList)
{
if(temp.getAttribute("value").equals(selectvalue))
{
fromPort.selectByValue(selectvalue);
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.