Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet explorer 如何使用webdriver selenium从IE浏览器下载文件_Internet Explorer_Selenium_Download_Webdriver - Fatal编程技术网

Internet explorer 如何使用webdriver selenium从IE浏览器下载文件

Internet explorer 如何使用webdriver selenium从IE浏览器下载文件,internet-explorer,selenium,download,webdriver,Internet Explorer,Selenium,Download,Webdriver,我正在尝试使用webdriver为我的web应用程序实现下载文件功能。在chrome或firefox中,我们可以设置在单击下载按钮时将文件下载到指定位置的功能,而无需任何窗口提示 但在IE9中,我找不到任何下载选项的功能设置 同样在IE中点击下载按钮后,webdriver在窗口提示保存/打开/取消后挂起。单击操作后,Webdriver不会返回任何内容。我必须退出webdriver并重新创建webdriver对象以继续下一步 为了处理窗口提示,我尝试使用Sikuli/send键等方法。所有这些方法

我正在尝试使用webdriver为我的web应用程序实现下载文件功能。在chrome或firefox中,我们可以设置在单击下载按钮时将文件下载到指定位置的功能,而无需任何窗口提示

但在IE9中,我找不到任何下载选项的功能设置

同样在IE中点击下载按钮后,webdriver在窗口提示保存/打开/取消后挂起。单击操作后,Webdriver不会返回任何内容。我必须退出webdriver并重新创建webdriver对象以继续下一步

为了处理窗口提示,我尝试使用Sikuli/send键等方法。所有这些方法只有在窗口处于焦点时才起作用。当我运行脚本并锁定机器或者像via Jenkins一样通过远程运行时,它就不起作用了


如何将IE no配置为提示保存选项,但将文件下载到任何预定义路径。与IE8一样,我们可以将regedit设置为设置下载路径。

如果存在文件下载弹出窗口,Selenium将抛出模式对话框。有时webdriver会根据弹出窗口出现后在浏览器上执行的操作挂起

如果需要,您可以通过注册表手动执行:

如果您使用Java作为编码语言,则可以使用
Robot
class。例如,请参考下面的链接。

c#
中没有类,而
Java
中的
Robot
类。我正在使用来处理windows弹出窗口


希望这有帮助。

要在IE浏览器中下载任何文件,最好使用cookies来完成。请使用cookies,而不是花毫无价值的时间寻找其他方法

List item
URL myUrl = new URL("linkName");
        URLConnection urlConn = myUrl.openConnection();
        urlConn.connect();
        CookieStore cookieStore = seleniumCookiesToCookieStore();
        DefaultHttpClient httpClient = new DefaultHttpClient();
        httpClient.setCookieStore(cookieStore);
        HttpGet httpGet = new HttpGet(downloadUrl);
        System.out.println("Downloding file form: " + downloadUrl);
        HttpResponse response = httpClient.execute(httpGet);
        HttpEntity entity = response.getEntity();
        if (entity != null) {
            InputStream inputStream = entity.getContent();
            FileOutputStream fileOutputStream = new FileOutputStream("LocationToSave");
            int read = 0;
            byte[] bytes = new byte[1024];
            while ((read = inputStream.read(bytes)) != -1) {
                fileOutputStream.write(bytes, 0, read);
            }
            fileOutputStream.close();
            System.out.println("Downloded " + entity.getContentType());
        } else {}

通常,您获取文件的url,然后调用一些非webdriver函数来检索该文件。给定该url(在python中是urllib.urlretrieve(url,path)或类似的内容),您使用的是什么编程语言?可能是