Java Selenium Webdriver按钮无法单击按钮

时间:2018-12-12 16:32:32

标签: java selenium button webdriver

我正在从事prestashop模块的自动化。

有一个我无法单击的按钮。

这是屏幕截图和xpath地址元素:

enter image description here

这是单击按钮的代码:

driver.findElement(By.xpath("//div[@id='seosa-excel']/div[@class='seosaexcel-content ng-scope']/div[@class='content ng-scope']/combinations-export-templates-form/form[@class='ng-pristine ng-valid ng-scope ng-valid-required']/div[@class='right-column ng-scope ng-isolate-scope']/div[@class='ng-scope'][3]/div[@class='text-right submit-group ng-scope']/button[@class='btn btn-success ng-scope']")).click();

这是编译后的错误消息:

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: Element <button ng-if="templateForm.selectedTemplate !== null" ng-disabled="!templateForm.form.$pristine" type="btn" ng-click="templateForm.export()" class="btn btn-success ng-scope" translate="...">Export</button> is not clickable at point (1848, 909). Other element would receive the click: <div id="footer" class="bootstrap">...</div>

这是与“导出”按钮匹配的html代码:

<button ng-if="templateForm.selectedTemplate !== null" ng-disabled="!templateForm.form.$pristine" type="btn" ng-click="templateForm.export()" class="btn btn-success ng-scope xh-highlight" translate="Export">Export</button>

我已尽力而为,但无济于事。它只是没有单击按钮。

预先感谢您的建议。大家好。

2 个答案:

答案 0 :(得分:0)

在这种情况下,您可以尝试使用Js单击:

IJavaScriptExecutor ex = (IJavaScriptExecutor)Driver;
ex.ExecuteScript("arguments[0].click();", elementToClick);

或使用操作:

WebElement button= driver.findElement(By.xpath("\\\zzzz"));
Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.perform();

您正面临这种情况,可能是因为按钮上方有负载或未启用该负载。

答案 1 :(得分:0)

我想您需要尝试以下两个选项之一:

1-更新驱动程序。

2-首先滚动到该元素以使其可单击:

WebElement button= driver.findElement(By.xpath("//button[text()='Export']"));
IJavaScriptExecutor ex = (IJavaScriptExecutor)driver;
ex.ExecuteScript("arguments[0].scrollIntoView(), button);
button.click();

我希望它对您有用.....