2016-09-01 3 views
1

Ich benutze Selen, um eine Webseite zu testen, die eine Auswahloption und einen Eingabetext hat.Selenium wählt nicht den richtigen Wert

Manuell und mit der Selenium IDE funktioniert es richtig, aber wenn ich den Testfall nach Java Junit exportiere, kann ich den Dropdown-Klick sehen, aber Selen wählt nicht den Wert, es erweitert nur das Dropdown.

Was kann ich tun?

Lets meinen Code überprüfen:

Select dropdown = new Select(driver.findElement(By.id("type"))); 
dropdown.selectByVisibleText("Celcius"); 

meine Form betrachtet, wie:

<form action="doit"> 
    <select name="type" id = "type"> 
     <option value = "fail"> Fail </option> 
     <option value = "celcius"> Celcius </option>   
    </select> 
    <input type="number" name="num" id="num"> 
</form> 
+0

Vielleicht ist es wegen der Leerzeichen vor und nach dem Text? Warum betrachten Sie 'selectByIndex' oder' selectByValue' nicht, um die Präzision zu verbessern? –

Antwort

1

Manchmal diese Methode nicht funktionieren. Dies kann vorkommen, wenn der Text zwischen den Optionstags Leerzeichen vor und nach den Tags enthält. Eg.

1. <option> Fail </option> 2. <option>Fail</option>

In dem obigen Beispiel 1 und 2 sind unterschiedlich. So können Sie wie verwenden

driver.findElement(By.id("type")).click();  // this will expand the list 
driver.findElement(By.xpath("//select[@id='type']/option[contains(text(),'Celcius')]")).click(); 

Versuchen Sie auch direkt zu klicken. Es funktioniert, wenn das Element vivible ist,

driver.findElement(By.xpath("//select[@id='type']/option[contains(text(),'Celcius')]")).click(); 
+0

Keine funktioniert :(Ich fiel das ist ein Problem mit meinem Selenium Java-Code ... Mit Interface funktioniert es gut, aber in Java-Einheit Fall, tut es nicht. –

1

driver.findElement (By.id ("type")) Tastaturbefehle ("Celcius.");

Verwandte Themen