我有一个复杂的顿悟网络应用程序,它只与IE兼容。以下是UI上的操作序列:
该页面有多个框架,其中有一个按钮,当单击时会显示一组菜单选项。他们的HTML如下:
<div class="FWDropdownMenu" id="test_dropdown">
<div class="DropdownMenuFrame">
<table>
<tbody>
<tr>
<td>
<span class="eABCD" id="e1">
<div class="DropdownMenuItem" id="test2_dropdown" onclick=return eTop.Fire(1,this,event)">
<table>
<tbody>
<tr>
<td>
<div>Option 1</div>
</td>
</tbody>
</table>
</div>
我想点击选项1,所以我用它来找到元素:
List<WebElement> options = driver.findElements(By.tagName("table")
.tagName("td").id("e1"));
Webdriver能够获取元素,但无法单击它。由于元素不可见,我收到错误,但即使通过点击菜单选项在屏幕上显示选项,我仍然无法点击它。
有任何想法/建议吗?
答案 0 :(得分:1)
WebElement element = driver.findElement(By.id("test2_dropdown"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
此方法使用javascript单击按钮。由于我的应用程序的设计,我无法通过selenium单击元素,但使用内部JavaScript,我能够成功完成任务。
感谢Stackoverflow !!
答案 1 :(得分:0)
对我而言,您似乎没有使用正确的元素定位器。根据您的问题,您要点击Option 1
,然后按ID e1
选择元素。这将点击下面的html元素
<span class="eABCD" id="e1">
我更喜欢使用这样的简单定位器:
driver.findElement(By.xpath("//div[contains(text(),'Option 1')]")).click();