繁体   English   中英

无法关闭 selenium 中的上传文件 window

[英]Can not close upload file window in selenium

我有一个问题要尝试解决。 我的网页中有一个屏幕,它打开一个对话框来上传文件。 我设法 select 文件,但是对话框没有关闭,并保持打开状态。 所以我不能继续屏幕上的其他事情。 我想关闭对话框。 我尝试关闭驱动程序,它关闭了 web 页面。 我尝试在所有打开的 windows 中创建一个 function,但找不到对话框。 如何关闭此对话框? 这是我所做的,因为它无法识别对话框,所以它不起作用。 (说只有一个 window 被打开)问题是在开发工具中我没有找到关闭此对话框的定位器,因为我无法检查它,有人可以建议如何关闭它吗? 由于浏览器卡住了,

 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");

在此处输入图像描述

在此处输入图像描述

这很可能是一个单独的浏览器 window 并拥有自己的开发工具。 要验证这一点,您可以将其聚焦并按F12 for the dev console 我看到您已经获得了 window 手柄。 放置一个调试器并尝试使用开发工具来做这件事。 您将获得选择器,当您处于断点下时,您可以在开发工具中使用它

我找到的解决方案就是不要打开 select 文件对话框。 我看到如果我只是将密钥发送到输入而不单击上传文件按钮,则打开的对话框正在工作

 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");

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM