【发布时间】:2016-07-02 23:06:38
【问题描述】:
我正在使用 Selenium Webdriver 和 Java。我不断收到 InvalidSelector 异常错误:我正在尝试单击带有 javascript 的 href 标记中的链接。该链接位于您将鼠标悬停在其上的子菜单中,然后出现链接。这是我的代码不起作用。我想按名称点击:
String xpath = String.format(".//div[@class='submenu_c1'][11]");
WebElement subelement = getDriver().findElement(By.xpath>(xpath));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", subelement);
这里是 HTML:
<div id="submenu" style="position: fixed; display: block; top: 149px; left: 444.5px;">
<div id="shadow" class="divEffectSubList" style="height:520px;width:900px;padding:5px;">
<div class="submenu_c1" style="width:900px;">Search</div>
<ul id="sublist">
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<a href="javascript:hrefSubmit(startPageForm, 'searchDataEvents');">Data Event</a>
</li>
<li>
<li>
<li>
</ul>
<ul id="sublist">
【问题讨论】:
-
你有执行悬停动作的组件吗?只有在那之后你的元素dom才会可见你为什么要使用java脚本执行器来点击你的元素?
-
是的:getDriver().findElement(By.xpath("//*[@id=\"search\"]")).click(); WebElement element = driver.findElement(By.xpath("//*[@id=\"search\"]"));动作动作=新动作(驱动程序); action.moveToElement(element).build().perform();
标签: javascript java selenium xpath href