selenium并使用href = javascript单击“a”

问题描述 投票:2回答:3

我正在尝试点击链接并遇到困难。相关的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);
selenium xpath selenium-webdriver
3个回答
3
投票

我经常遇到WebDriver似乎无法点击的元素。在这些情况下,我使用以下模式:

var js = (IJavaScriptExecutor)driver;
js.ExecuteScript("$j(\"div[id='adHocAddDocDiv']\").click();");

这是C#版本。我确信Java表单非常相似。


1
投票

尝试更明确:

driver.findElement(By.linkText("Close window")).click();

0
投票

我的猜测是,在该div之后有更多的<a>,并且它不够独特。试试这个:

driver.findElement(By.cssSelector("div#adHocAddDocDiv > a[href*='hideDiv()']")).click()
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.