我正在从事prestashop模块的自动化。
有一个我无法单击的按钮。
这是屏幕截图和xpath地址元素:
这是单击按钮的代码:
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>
我已尽力而为,但无济于事。它只是没有单击按钮。
预先感谢您的建议。大家好。
答案 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();
我希望它对您有用.....