我正在尝试点击链接并遇到困难。相关的HTML代码是:
<div id="adHocAddDocDiv" style="display: block;">
<a href="javascript:hideDiv();" style="color:#000">
Close window
</a>
<table border="0">
<tbody></tbody>
</table>
</div>
对于代码,我有:
driver.findElement(By.xpath("//*[@id='adHocAddDocDiv']/a")).click();
这确实找到了正确的元素,但是如果我手动点击链接,它似乎不会执行JavaScript来关闭窗口。有任何想法吗?
更新:这是最终工作的代码:
WebElement element = driver.findElement(By.xpath("//[@id='adHocAddDocDiv']/a"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
我经常遇到WebDriver似乎无法点击的元素。在这些情况下,我使用以下模式:
var js = (IJavaScriptExecutor)driver;
js.ExecuteScript("$j(\"div[id='adHocAddDocDiv']\").click();");
这是C#版本。我确信Java表单非常相似。
尝试更明确:
driver.findElement(By.linkText("Close window")).click();
我的猜测是,在该div之后有更多的<a>
,并且它不够独特。试试这个:
driver.findElement(By.cssSelector("div#adHocAddDocDiv > a[href*='hideDiv()']")).click()