2016-12-22 1 views
0

Könnte mir bitte jemand helfen mit der Auswahl eines Wertes aus Kendo UI MVVM Drop-down mit Selenium Java?Wie wählt man einen Wert von Kendo UI MVVM Drop-Down im automatisierten Test?

<input class="k-input fieldFullWidth" autocomplete="off" style="width: 100%;" title="" role="combobox" aria-expanded="false" tabindex="0" aria-disabled="false" aria-autocomplete="both" aria-owns="ddStore_listbox" type="text"> 

<input id="ddStore" class="fieldFullWidth" data-role="combobox" style="display: none;" aria-disabled="false" data-bind="value: selectedAsset.StoreID, comboboxText: selectedAsset.StoreName"> 

Ich habe versucht, JavascriptExecutor zu verwenden. Aber, es gibt mir org.openqa.selenium.WebDriverException: unbekannter Fehler: Kann Eigenschaft 'Wert' von null Fehler nicht festlegen.

jse.executeScript("document.getElementById('ddstore').value = '1';"); 

Dank

+0

Sie JavaScript-Tag bedeuten Sie? und nicht Java –

+0

Entschuldigung. Ich vergaß zu erwähnen. Ich benutze Selenium Java, um automatisierten Test zu machen –

+0

Ich denke, es ist eine Combo-Box, bitte fügen Sie UI Bild sowie – NarendraR

Antwort

0

Verwenden ExplicitWait bis Sichtbarkeit von <input> Tag-Elemente zu warten und dann als Eingabe

WebDriverWait wait = new WebDriverWait(driver, 120); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ddStore"))); 

driver.findElement(By.id("ddStore")).sendKeys("dropDown_Value"); // send your dropdown value as input 

`

Die andere alternative Möglichkeit, Ihren Drop-Down-Wert senden ist JavascriptExecuter zu verwenden Da Ihr Tag das Attribut style="display: none;" enthält, könnten sich Änderungen der Unsichtbarkeit von eleme ergeben nt

JavascriptExecutor jse = (JavascriptExecutor)driver; 
jse.executeScript("arguments[0].value='your_dropdown_value';",driver.findElement(By.id("ddStore"))); 
+0

Nein, es funktioniert nicht. Es gibt mir den folgenden Fehler org.openqa.selenium.TimeoutException: Zeitüberschreitung nach 120 Sekunden Warten auf Sichtbarkeit des Elements von By.id gefunden: ddStore –

+0

Ok, versuchen Sie dies, wenn Sie dies mit 'JavaScriptExecuter' - 'Jse tun möchten .executeScript ("arguments [0] .value = 'your_dropdown';", driver.findElement (By.id ("ddStore"))); ' – NarendraR

+0

Kein Fehler in der Konsole. Aber, kein Wert kann in die Drop-Down-Box entweder eingegeben werden - http://www.screencast.com/t/N15vzoTub –

0

Sie können den folgenden Code versuchen, Drop-Down-Wert zu wählen:

Select mydrpdwn = new Select(driver.findElement(By.id("ddStore"))); //id of dropdown 
mydrpdwn.selectByVisibleText("name");// Value you wanted to select 
Verwandte Themen