2017-02-23 2 views
2

Was ich tue, ist:Chromedriver Drücken von „Strg + Klick“ statt normal „auf“

return element(by.xpath('//*/*[@id = "countyIds"]/option[contains(text(),"'+value+'")]')).click(); 

aber ich sehe es nicht „ctrl + Klick“ führen zwei Werte hervorgehoben bleiben.

Html:

<select name="countyIds" id="countyIds" class="filter" multiple=""> 
     <option value="864">Banskobystrický kraj</option> 
     <option value="821" selected="selected">Bratislavský kraj</option> 
     <option value="892" selected="selected">Košický kraj</option> 
     <option value="844">Nitriansky kraj</option> 
     <option value="878">Prešovský kraj</option> 
     <option value="834">Trenčiansky kraj</option> 
     <option value="826">Trnavský kraj</option> 
     <option value="852">Žilinský kraj</option> 
</select> 

Sie können zwei selected Werte in der zweiten und dritten Option sehen. Wie man normal "klickt"?

Antwort

0

können Sie das Select-Objekt verwenden, anstatt direkt klicken:

using OpenQA.Selenium.Support.UI; 

// select the drop down list 
var countries = driver.FindElement(By.Name("countries")); 
//create select element object 
var selectElement = new SelectElement(countries); 

//select by value 
selectElement.SelectByValue("844"); 
// select by text 
selectElement.SelectByText("Prešovský kraj"); 
+0

Das Problem mit der oben ist, dass .SelectByValue und .SelectByText das gleiche Verhalten aufweisen, stellen sie das ausgewählte Element nicht dazu führen, abgewählt zu werden, Sie müssen zuerst DeselectAll() aufrufen. Manchmal erwarten Webseiten jedoch keine Auswahlbox, in der nichts ausgewählt ist. Ich habe ein Mehrfachauswahlfeld, in dem ich, wenn ich als tatsächlicher Benutzer klicke, die aktuell ausgewählte Option abwählen und zu der angeklickten Option wechseln, aber dieses Verhalten kann ich mit ChromeDriver nicht erreichen. Die Verwendung von DeselectAll() stimmt nicht mit dem überein, was ein Benutzer tut. –

Verwandte Themen