2012-08-13 37 views
23

I am newbie trong Selenium và tôi đang bị mắc kẹt ở đây:Làm thế nào để có được lựa chọn tùy chọn sử dụng Selenium WebDriver với Java

Tôi muốn có được nhãn chọn hoặc giá trị của một thả xuống sử dụng Selenium WebDriver và sau đó in trên bảng điều khiển.

Tôi có thể chọn bất kỳ giá trị nào từ menu thả xuống nhưng tôi không thể truy xuất giá trị đã chọn và in giá trị đó.

Select select = new 
Select(driver.findElement(By.id("MyDropDown"))).selectByVisibleText(data[11].substring(1 , data[11].length()-1)); 
WebElement option = select.getFirstSelectedOption(); 

Nhưng tất cả nỗ lực của tôi sẽ vô ích Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn trước :)

Trả lời

40

Bạn sẽ có thể để có được những văn bản sử dụng getText() (đối với các yếu tố tùy chọn mà bạn đã sử dụng getFirstSelectedOption()):

Select select = new Select(driver.findElement(By.xpath("//select"))); 
WebElement option = select.getFirstSelectedOption(); 
String defaultItem = option.getText(); 
System.out.println(defaultItem); 
+5

tôi sẽ thêm cho người đọc trong tương lai mà chúng tôi cần nhập org.openqa.selenium.support.ui.Select để làm việc trên Chọn yếu tố. – Michal

+0

Có Michal, bạn nói đúng. –

16

Hoàn thành câu trả lời:

String selectedOption = new Select(driver.findElement(By.xpath("Type the xpath of the drop-down element"))).getFirstSelectedOption().getText(); 

Assert.assertEquals("Please select any option...", selectedOption); 
2

Trong Selenium Python là:

from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support.ui import Select 

def get_selected_value_from_drop_down(self): 
    try: 
     select = Select(WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.ID, 'data_configuration_edit_data_object_tab_details_lb_use_for_match')))) 
     return select.first_selected_option.get_attribute("value") 
    except NoSuchElementException, e: 
     print "Element not found " 
     print e 
0
var option = driver.FindElement(By.Id("employmentType")); 
     var selectElement = new SelectElement(option); 
     Task.Delay(3000).Wait(); 
     selectElement.SelectByIndex(2); 
     Console.Read(); 
+1

Mặc dù đoạn mã này có thể giải quyết được câu hỏi, [bao gồm cả giải thích] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho người đọc trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn. – DimaSan

1

Trên tùy chọn sau đây:

WebElement option = select.getFirstSelectedOption(); 
option.getText(); 

Nếu từ phương pháp getText() bạn nhận được một trống, bạn có thể lấy chuỗi từ giá trị của lựa chọn sử dụng phương pháp getAttribute:

WebElement option = select.getFirstSelectedOption(); 
option.getAttribute("value"); 
Các vấn đề liên quan