2016-06-02 2 views
0

Ich habe eine Anforderung, wo ich die Werte für ein Bootstrap-Dropdown-Menü mit Selenium statt Auswahl übergeben müssen. Wie kann ich das erreichen? Gibt es das überhaupt, dass wir es mit sendkeys in Selen machen könnten? Unten ist der Code hier, ich muss die Werte CSS, HTML, Java-Skript übergeben, anstatt sie während der Automatisierung auszuwählen.Können wir die Werte mit sendkeys in selen übergeben, um ein Element aus einem Bootstrap-Dropdown-Menü auszuwählen?

<div class="container"> 
    <h2>Dropdown Example</h2> 
    <p>The data-toggle="dropdown" attribute is used to open the dropdown menu.</p> 
    <div class="dropdown"> 
    <button class="btn btn-primary dropdown-toggle" id="menu1" type="button" data-toggle="dropdown">Dropdown Example 
    <span class="caret"></span></button> 
    <ul class="dropdown-menu" role="menu" aria-labelledby="menu1"> 
     <li role="presentation"><a role="menuitem" tabindex="-1" href="#">HTML</a></li> 
     <li role="presentation"><a role="menuitem" tabindex="-1" href="#">CSS</a></li> 
     <li role="presentation"><a role="menuitem" tabindex="-1" href="#">JavaScript</a></li> 
     <li role="presentation" class="divider"></li> 
     <li role="presentation"><a role="menuitem" tabindex="-1" href="#">About Us</a></li>  
    </ul> 
    </div> 
</div> 
+0

Was meinen Sie mit den Wert übergeben? Sie können keinen Text an ein Listenelement senden. – Mobrockers

+0

Ich meine, ich muss die Liste Elemente übergeben, z. B. HTML, Css, Javascript diese Werte mit Sendkeys. – siddu

+0

Übergeben Sie sie wo? Meinst du, du musst den Elementtext abrufen? – Mobrockers

Antwort

0

Sie so etwas wie diese verwenden können, eine Dropdown-Liste Element mit der Tastatur wählen:

new Actions(driver).sendKeys(Keys.ARROW_DOWN, Keys.ARROW_DOWN, Keys.ARROW_DOWN).perform(); 

zum Beispiel wählen Sie Javascript Ihr Element Dieser Code sollte, nachdem Sie auf die Schaltfläche geklickt haben zu öffnen das Dropdown.

bearbeiten

Um die Position des Elements in der Dropdown-Liste zu finden Sie zu haben zu zählen gehen. Sie können dies folgendermaßen tun:

List<WebElement> elements = driver.findElements(By.cssSelector(ul.dropdown-menu > li)); 

for(WebElement element : elements) { 
    new Actions(driver).sendKeys(Keys.ARROW_DOWN).perform(); 
    if(element.getText().equals("Javascript") { 
     element.click(); 
     break; 
    } 
} 
+0

Ja, es ist korrekt, aber angenommen, ich habe eine Liste von Elementen sagen sagen Städte, wo ich die Stadt auswählen, hier wird meine Auswahl zufällig ändern, so muss ich Excel-Blatt verwenden, wo ich die Stadt Namen sehr oft ändern kann. Von der Excel-Tabelle übergebe ich die Werte, die im Dropdown-Menü ausgewählt werden sollen. also wenn ich wie driver.findElement (By.xpath (("//*[@id=''menu1]"))).sendkeys(" Wert übergeben "); Also muss ich in diesem Feld den Namen der Stadt angeben, wo ich sie auswählen kann. wie kann ich es tun? – siddu

+0

Siehe meine Bearbeitung, das sollte wahrscheinlich funktionieren. – Mobrockers

Verwandte Themen