我有一个问题想要解决。 我的网页中有一个屏幕,可以打开一个对话框来上传文件。 我设法选择了文件,但是对话框没有关闭,而是保持打开状态。 所以我无法继续处理屏幕上的其他事情。 我想关闭对话框。 我尝试关闭驱动程序,它关闭了网页。 我尝试创建所有打开的窗口的功能,但找不到对话框。 如何关闭此对话框? 这是我所做的但没有奏效,因为它无法识别对话框。 (说只开了一扇窗) 问题是在 devtool 中我没有找到关闭此对话框的定位器,因为我无法检查它,有人可以建议如何关闭它吗?因为浏览器卡住了,
Thread.sleep(8000);
Set <String> w = deiver2.getWindowHandles(); // create set of all windows
deiver2.switchTo()
.activeElement();
System.out.println("Window title: "+ deiver2.getTitle());
deiver2.findElement(By.xpath("//input[@type='file']"))
.sendKeys(
"X:\\AutomationFiles\\yoyoy.pdf");
for (String h: w){
deiver2.switchTo().window(h);
String s= deiver2.getTitle();
System.out.println("Window title: "+ deiver2.getTitle());
if(s.equalsIgnoreCase("Open")){
System.out.println("Window title to be closed: "+ deiver2.getTitle());
deiver2.close();
}
}
deiver2.switchTo().window(base);
System.out.println("END");
答案 0 :(得分:0)
这很可能是一个单独的浏览器窗口,并且有自己的开发工具。要验证这一点,您可以将其聚焦并按 F12 for the dev console
。我看到你已经得到了窗口句柄。放置一个调试器并尝试使用开发工具来做那件事。您将获得可以在断点下时在开发工具中使用的选择器
答案 1 :(得分:0)
我找到的解决方案就是不打开选择文件对话框。 我看到如果我只是在没有点击上传文件按钮的情况下将密钥发送到输入,那么打开对话框是有效的
public void uploadFile() throws Exception {
WebDriver deiver2 = getWebDriver();
Thread.sleep(3000);
deiver2.switchTo()
.activeElement();
deiver2.findElement(By.xpath("//input[@type='file']"))
.sendKeys(
"X:\\AutomationFiles\\yyyyyy.pdf");
System.out.println("END");
}