2017-07-11 4 views
1

für Schleifenwert initialisieren kann nicht mit 0 in Selen WebDriver/java initialisierenArray Wert kann nicht mit 0 in Selen WebDriver/java

String arr[] = new String[4]; 
for(int i = 0; i <4; i++) { 
    String text = driver 
     .findElement(By.xpath("html/body/select/option["+i+"]")).getText(); 
    arr[i] = text; 
    System.out.println(arr[i]+" "); 
} 

Diese HTML ist, die ich alle Element zu lesen.

<select> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="opel">Opel</option> 
    <option value="audi">Audi</option> 
</select> 

Antwort

2

Sie können das Array mit 0 initialisieren, aber nicht in dem von Ihnen angegebenen Szenario.

Sie finden ein Element mit dem XPath: html/body/select/Option [ "+ i +"]

, wo ich in Bezug auf die wählen Element die Position des Optionselement ist. Es kann niemals Null sein.

Wenn Sie von Null ein Array starten, dann sollten Sie den Code unten angegebenen verwenden:

String arr[] = new String[4]; 
for(int i = 0; i <4; i++) { 
    String text = driver.findElements(By.xpath("html/body/select/option")).get(i).getText(); 
    arr[i] = text; 
    System.out.println(arr[i]+" "); 
} 

Erläuterung:driver.findElements (By.xpath ("html/body/select/Option ")) geben Sie die Liste von WebElement zurück. Sie können das Element am Index 0 erhalten, die zu "html/body/select/Option [1]" als gleichwertig soll

+1

Dank Monika Sie sind richtig nutzen können, beginnt html Index von 1 – Som

+1

Sie sind willkommen. Bitte akzeptieren Sie die Antwort, wenn es hilfreich ist – Monika

0

Html Indizes von 1 beginnt, nicht 0. Der xpath sollte

"html/body/select/option["+ (i + 1) +"]" 

sein

anstatt jedoch die Möglichkeit, eins nach dem anderen Lokalisieren Sie Select class

WebElement dropdown = driver.findElement(By.xpath("html/body/select")); 
Select select = new Select(dropdown); 
List<WebElement> options = select.getOptions(); 
String arr[] = new String[options.size()]; 
for(int i = 0 ; i < options.size() ; i++) { 
    arr[i] = options.get(i).getText(); 
    System.out.println(arr[i] + " "); 
} 
+1

Vielen Dank für die schnelle Antwort, es funktioniert für mich – Som

Verwandte Themen