2012-10-17 33 views
37

Làm cách nào để chọn một mục từ danh sách thả xuống như giới tính (ví dụ nam, nữ) bằng cách sử dụng Selenium WebDriver với Java?Cách chọn một mục từ danh sách thả xuống bằng cách sử dụng Selenium WebDriver với java?

Tôi đã thử

WebElement select = driver.findElement(By.id("gender")); 
List<WebElement> options = select.findElements(By.tagName("Male")); 
for (WebElement option : options) { 
    if("Germany".equals(option.getText())) 
     option.click(); 
} 

mã trên tôi này đã không làm việc.

+1

Tương tự như: http://stackoverflow.com/questions/7232544/selenium-webdriver-and-dropdown-boxes – 3ck

+0

xin lỗi couldn này, t giúp tôi ra .. có thể bạn cung cấp cho tôi cách hoặc cho tôi bất kỳ ý tưởng nào để tôi có thể tiến hành –

+1

Người dùng Stackoverflow giúp những người tự giúp mình :) – Amey

Trả lời

3

Google "chọn mục selenium webdriver" sẽ trả về kết quả đầu tiên là How do I set an option as selected using Selenium WebDriver (selenium 2.0) client in ruby. Đây không phải là Java, nhưng bạn sẽ có thể dịch nó mà không có quá nhiều công việc. https://sqa.stackexchange.com/questions/1355/what-is-the-correct-way-to-select-an-option-using-seleniums-python-webdriver nằm trong top 5, một lần nữa không phải Java nhưng API rất giống nhau.

41

định sử dụng -

new Select(driver.findElement(By.id("gender"))).selectByVisibleText("Germany"); 

Tất nhiên, bạn cần phải import org.openqa.selenium.support.ui.Select;

+3

Lưu ý rằng trong C# lớp là 'SelectElement' thay vì' Select'. Ngoài ra nó không phải là một phần của gói 'Selenium.WebDriver' cốt lõi, để sử dụng lớp này, bạn cũng phải cài đặt gói' Selenium.Support'. –

+0

Bạn có thể vui lòng cho chúng tôi biết tại sao chúng tôi cần chuyển đổi WebElement thành một trường hợp Chọn không? Là nó chỉ để chúng tôi có thể nhận được Chọn phương pháp cụ thể mà làm cho nó dễ dàng để tự động chọn? Ngoài ra, chúng ta có thể tự động lựa chọn, mà không sử dụng Select class? – testerjoe2

3
WebElement selectgender = driver.findElement(By.id("gender")); 
selectgender.sendKeys("Male"); 
3

Bạn có thể sử dụng 'Chọn' lớp selen WebDriver như được đăng bởi Di Lặc. Xin lỗi, nhưng tôi là một chút bối rối về, để chọn giới tính từ thả xuống tại sao để so sánh chuỗi với "Đức". Đây là đoạn mã,

Select gender = new Select(driver.findElement(By.id("gender"))); 
gender.selectByVisibleText("Male/Female"); 

Nhập import org.openqa.selenium.support.ui.Select; sau khi thêm mã ở trên. Bây giờ giới tính sẽ được chọn mà bạn đã bao giờ (Nam/Nữ).

0
public class checkBoxSel { 

    public static void main(String[] args) { 

     WebDriver driver = new FirefoxDriver(); 
     EventFiringWebDriver dr = null ; 


     dr = new EventFiringWebDriver(driver); 
     dr.get("http://www.google.co.in/"); 

     dr.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

     dr.findElement(By.linkText("Gmail")).click() ; 

     Select sel = new Select(driver.findElement(By.tagName("select"))); 
     sel.selectByValue("fil"); 

    } 

} 

Tôi đang sử dụng GOOGLE LOGIN PAGE để kiểm tra tùy chọn chọn. Ví dụ trên là tìm và chọn ngôn ngữ "Filipino" từ danh sách thả xuống. Tôi chắc chắn điều này sẽ giải quyết vấn đề.

1
WebElement select = driver.findElement(By.id("gender")); 
List<WebElement> options = select.findElements(By.tagName("option")); 
for (WebElement option : options) { 
    if("Germany".equals(option.getText())) 
     option.click(); 
} 
21

Chỉ cần quấn WebElement của bạn vào Select Object như hình dưới đây

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

Một khi điều này được thực hiện, bạn có thể chọn các giá trị cần thiết trong 3 cách. Hãy xem xét một file HTML như thế này

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

Bây giờ để xác định thả xuống làm

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

Để chọn tùy chọn của nó nói 'Lập trình' bạn có thể làm

dropdown.selectByVisibleText("Programmer "); 

hoặc

dropdown.selectByIndex(1); 

hoặc

dropdown.selectByValue("prog"); 

Chúc mừng Mã hóa :)

5

Tagname bạn nên đề cập như thế "tùy chọn", nếu văn bản với không gian chúng ta có thể sử dụng phương pháp này cần làm việc.

WebElement select = driver.findElement(By.id("gender")); 
List<WebElement> options = select.findElements(By.tagName("option")); 

for (WebElement option : options) { 

if("Germany".equals(option.getText().trim())) 

option.click(); 
} 
1

Để thấy rằng yếu tố thả xuống đặc biệt

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

Để có được danh sách của tất cả các phần tử trong hộp thả xuống

for(int j=1;j<3;j++) 
    System.out.println(gender.getOptions().get(j).getText()); 

Để chọn nó thông qua văn bản rõ ràng optoion

gender.selectByVisibleText("Male"); 

Để chọn vv nó bằng chỉ số

gender.selectByIndex(1); 
Các vấn đề liên quan