我正在尝试选择下拉值。有时它从下拉列表中选择。一段时间我得到'元素不可见异常:元素不可见'。当它无法选择时,它的可见性是错误的。所以我尝试了明确的等待,但我有时间超时。我尝试过使用Javascriptexecuotr。有人可以帮我吗?
<select class="transport-date-month ddlMonth"
data-bind="bookingSelect: travelDate, property: 'month', type: 'date',
css: { bindedValue: isBindedFromHoliday() },
event: { change: setArrivalDate() }">
<option value="-1" selected="selected"></option>
<option value="Jan">Jan</option>
<option value="Feb">Feb</option>
<option value="Mar">Mar</option>
<option value="Apr">Apr</option>
<option value="May">May</option>
<option value="Jun">Jun</option>
<option value="Jul">Jul</option>
<option value="Aug">Aug</option>
<option value="Sep">Sep</option>
<option value="Oct">Oct</option>
<option value="Nov">Nov</option>
<option value="Dec">Dec</option>
</select>
答案 0 :(得分:0)
真实用户是通过webdriver模拟的,因此不可能与隐形或隐藏元素进行交互。要解决此问题,请添加div,单击div以使下拉列表可见,然后选择一个选项。尝试类似:
<div class:"myclass">
<select id="selectID" class="transport-date-month ddlMonth"
...
</div>
WebDriverWait wdw= new WebDriverWait(driver, 300);
WebElement we = driver.findElement(By
.className("myclass"));
we.click();
WebElement selectElement = wdw.until(ExpectedConditions
.visibilityOfElementLocated(By.id("selectID")));
Select select = new Select(selectElement);
select.selectByVisibleText("SECURITY");