Given Below is a Piece of Code which denotes a Drop-Down.
I need to Select Date value in this Drop-down denoted By <option value="1" label="Date">Date</option>
<select id="type" class="text-input ng-pristine ng-valid ng-scope ng-touched" ng-style="cssStyle" name="type" ng-if="!options.hidePlaceholder" ng-model="result.type" qmx-observe-value="text" ng-disabled="options.readonly" ng-options="obj.value as obj.text group by obj.groupby for obj in selectData" style="font-size: 13px; opacity: 1; width: 100%;">
<option class="ng-binding" value="">----</option>
<option value="0" selected="selected" label="Text">Text</option>
<option value="1" label="Date">Date</option>
<option value="2" label="Numeric">Numeric</option>
<option value="3" label="Switch">Switch</option>
<option value="4" label="Map Location Marker">Map Location Marker</option>
<option value="5" label="Picker">Picker</option>
<option value="6" label="List">List</option>
</select>
Following Methods didn't work.
1.) selecting this value using Select by importing org.openqa.selenium.support.ui.Select
Select elm = new Select(driver.findElement(By.xpath(".//*[@id='type']/option[3]")));
elm.selectByVisibleText("Date");
Console shows:
Element should have been "select" but was "option"
2.) Clicking on the Drop-Down first to display option to be selected and then clicking on the option.
driver.findElement(By.xpath(".//*[@id='type']")).click();
driver.findElement(By.xpath(".//*[@id='type']/option[3]")).click();
Console shows:
DEBUG Element is missing an accessible name: id: type, tagName:
SELECT, className: text-input ng-pristine ng-untouched ng-valid
ng-scope
3.) Using JavascriptExecutor to get the click.
driver.findElement(By.xpath(".//*[@id='type']")).click();
((JavascriptExecutor)driver).executeScript("arguments[0].click();", driver.findElement(By.xpath(".//*[@id='type']/option[3]")));
Console shows:
DEBUG Element is missing an accessible name: id: type, tagName:
SELECT, className: text-input ng-pristine ng-untouched ng-valid
ng-scope
4.) Using Mouse-Over on Option to be selected in Drop-down and then performing click on it.
driver.findElement(By.xpath(".//*[@id='type']")).click();
WebElement subdrop = driver.findElement(By.xpath(".//*[@id='type']/option[3]"));
Actions action = new Actions(drive);
action.moveToElement(subdrop).perform();
Custom.Twait();
action.click(subdrop).perform();
Console shows:
Exception in thread "main"
org.openqa.selenium.UnsupportedCommandException: POST
/session/a37a745a-e40c-45a9-9760-8e01b451a017/moveto did not match a
known command (WARNING: The server did not provide any stacktrace
information)
I have also added Wait in Between where i'm using this code. Here for simplicity i did not include it.
Need Help.
See Question&Answers more detail:
os