【发布时间】:2014-09-05 06:23:43
【问题描述】:
下面是html
<div id="form1:customertype" class="ui-selectonemenu ui-widget ui-state-default ui-corner-all ui-state-hover" style="width: 165px;">
<div class="ui-helper-hidden-accessible">
<select id="form1:customertype_input" name="form1:customertype_input" tabindex="-1">
<option value="S">Staff</option>
<option value="C">Customer</option>
<option value="N">New To Bank</option></select></div>
<div class="ui-helper-hidden-accessible"><input id="form1:customertype_focus" name="form1:customertype_focus" type="text" readonly="readonly"></div>
<label id="form1:customertype_label" class="ui-selectonemenu-label ui-inputfield ui-corner-all" style="width: 149px;">Staff</label>
<div class="ui-selectonemenu-trigger ui-state-default ui-corner-right ui-state-hover"><span class="ui-icon ui-icon-triangle-1-s ui-c"></span></div></div>
class="ui-helper-hidden-accessible"的样式表是
ui-helper-hidden-accessible {
border: 0;
clip: rect(0 0 0 0);
height: 0px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 0px;
}
以下是我的代码
WebElement customerType = driver.findElement(By.id("form1:customertype_input"));
Select select = new Select(customerType);
select.selectByVisibleText("New To Bank");
当我尝试从下拉列表中选择“New to Bank”时,出现异常 元素不可见:元素当前不可见,可能无法操作 - Selenium webdriver
我尝试了 WebDriverWait 技术,但没用,有什么想法吗?
【问题讨论】:
-
下拉菜单会打开吗?
-
可能选择下拉列表已包装。这通常在创建爵士下拉菜单时发生。检查它是否真的被隐藏了。
-
是的,手动打开下拉菜单,但不是从代码中打开。下拉菜单在页面上可见。
-
尝试通过父 div 访问它:WebElement customerType = driver.findElement(By.Xpath("//div[@id='form1:customertype']//select[@id='form1 :customertype_input'])
-
试过了,但结果是一样的。有趣的部分是它不会抛出异常,直到这一行 select.selectByVisibleText("New To Bank");
标签: selenium