我有javascript onclick:
<a href="#" id="download" onclick="Exceldownload('sites')">
<i class="fa fa-download card-down-icon" aria-hidden="true"></i>
</a>
在硒中,我这样添加:
public void x() {
driver.findElement(By.xpath("//a[@onclick='Exceldownload("sites")']")).click();
}
但由于元素无法点击,我收到错误。
答案 0 :(得分:1)
可能性
如果一切正确,请尝试点击java脚本点击,如代码段所示。
WebElement element =driver.findElement(By.xpath("//a[@onclick='Exceldownload("sites")']"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
答案 1 :(得分:1)
元素无法点击
此问题可能有多种原因,如下所示:
也许像加载图像这样的其他元素会覆盖元素,并在元素完全加载后消失。然后你应该等到元素可点击:
new WebDriverWait(driver, 60).until(
ExpectedConditions.elementToBeClickable(By.id("download"))).click();
也许同一个定位器存在多个元素,不幸的是,您正在查找页面上但不可点击的隐藏元素。然后你需要使用一个独特的定位器。
可能是由于设计问题而发生的。可能有一些其他元素覆盖元素并且正在接收click事件。然后,您可以使用JavascriptExecutor
作为替代解决方案:
((JavascriptExecutor)driver).executeScript(
"arguments[0].click();", driver.findElement(By.id("download")));