有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

无法使用Selenium webdriver Java单击按钮

我一直在试用使用Java的Selenium WebDriver。我可以轻松地点击带有ID的按钮,按值从下拉框中选择,甚至在输入字段中键入

我正在尝试在一个报告平台上自动浏览不同的类别,并通过填写开始日期和结束日期来下载某些报告。使用以下工具时效果良好:

WebElement startDate = driver.findElement(By.id("start_date"));
startDate.sendKeys("25082021");
WebElement endDate = driver.findElement(By.id("end_date"));
endDate.sendKeys("25092021");

问题是最后要点击一个下载按钮“ExcelHtml5”,它是Datatables的一部分

Javascript inside of PHP:

Inspect code of the Excel button

我已经试着通过使用完成点击。xpath()和。cssSelector()

但是运气不好。。以下是我尝试过的最新代码行:

WebDriverWait wait = new WebDriverWait(driver, 10); 
WebElement edit_button = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("button#dt-button.buttons-excel.buttons-html5.btn.btn-success.btn-sm.downloadExcel\"")));
edit_button.click();

还有另一种方法:

WebElement excelButton = driver.findElement(By.xpath("//button[@class='downloadExcel'][@type='button'][contains(text(),'Excel')]"));
excelButton.click();

在不到半个小时的时间里,我把一切都准备好了,除了点击“Excel”——下载按钮。我一直在网上努力寻找答案,最后用了大约6个小时,用Selenium WebDriver点击了这个Excel按钮,但没有成功。我尝试了XPath Helper和Chropath等chrome扩展来获取cssSelector

有谁能帮我吗

更新: 该问题是由在该过程中打开的新选项卡引起的。使用@cruisepandey代码解决方案后,我成功下载了报告

更正的代码是:

ArrayList<String> tabs =  new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));
driver.findElement(By.xpath("//div[@class='dt-buttons']//button[contains(@class,'downloadExcel')]")).click();

共 (0) 个答案