web-dev-qa-db-fra.com

Comment obtenir la valeur de la balise <input> à l'aide de Java dans le pilote Web Selenium lorsque l'attribut Value est généré de manière dynamique

Le code HTML sur lequel j'essaie d'opérer:

<select id="GlobalDateTimeDropDown" class="combo"
    onchange="CalculateGlobalDateTime('Time',this.value)" name="GlobalDateTimeDropDown">
       <option value="+5.5" selected="selected"> … </option>
       <option value="+12"> … </option>
       <option value="+8"> … </option>
       <option value="+2"> … </option>
    </select>
    <input id="GlobalDateTimeText" class="combo" type="text" name="GlobalDateTimeText"       value="" style="width:215px;padding:2px;" readonly="readonly"></input>

Code Java:

WebElement values=driver.findElement(By.id("GlobalDateTimeText")).getAttribute("Value");
System.out.println(values);

Sortie: Vierge

7
udi08s

Pour sélectionner la valeur d'entrée, vous devez utiliser un sélecteur xpath car utiliser by.id trouvera l'élément select car ils partagent la même id - ce qui est une mauvaise pratique, car ils devraient être uniques. Quoi qu'il en soit, essayez:

driver.findElement(By.xpath("//input[@id='GlobalDateTimeText']")).getAttribute(‌​"value");
6
Mark Rowlands

Le code devrait être quelque chose comme ça

WebElement dropDown = driver.findElement(By.id("GlobalDateTimeText"));
Select sel = new Select(dropDown);
List<WebElement> values = sel.getOptions();
for(int i = 0; i < values.size(); i++)
{
   System.out.println(values.get(i).getText());
}
0
Vinay