2012-08-13 19 views
23

Jestem nowicjuszem w selen i siedzę tutaj:Jak się wybiera opcję przy użyciu selen WebDriver z Java

Chcę uzyskać wybraną etykietę lub wartość rozwijanej użyciu selen WebDriver a następnie wydrukuj to na konsoli.

Jestem w stanie wybrać dowolną wartość z rozwijanego menu, ale nie jestem w stanie pobrać wybranej wartości i wydrukować.

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

Ale wszystkie moje wysiłki dzieje na próżno Każda pomoc będzie mile widziane. Z góry dzięki :)

Odpowiedz

40

Powinieneś być w stanie uzyskać tekst używając getText() (dla elementu opcji zostałeś korzystając getFirstSelectedOption()):

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

Dodałbym do przyszłych czytelników, których potrzebujemy do zaimportowania org.openqa.selenium.support.ui.Wybierz do pracy Wybierz elementy. – Michal

+0

Tak, Michał, masz rację. –

16

Kończenie odpowiedź:

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

w selen Python to:

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

Chociaż ten fragment kodu może rozwiązać pytanie, [w tym wyjaśnienie] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-ans -answers) naprawdę pomaga poprawić jakość twojego posta. Pamiętaj, że odpowiadasz na pytanie przeznaczone dla czytelników w przyszłości, a te osoby mogą nie znać powodów sugestii dotyczących kodu. – DimaSan

1

Na poniższa opcja:

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

Jeśli z metody getText() dostaniesz puste, można uzyskać ciąg od wartości opcji stosując metodę getAttribute:

WebElement option = select.getFirstSelectedOption(); 
option.getAttribute("value"); 
Powiązane problemy