首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用selenium在SafariDriver / Safari中上载文件?

如何使用selenium在SafariDriver / Safari中上载文件?
EN

Stack Overflow用户
提问于 2015-04-07 04:22:40
回答 3查看 1.8K关注 0票数 0

嗨,你能帮我上传一个文件在Safari,Mac。

我给出了一个网站,我们可以通过点击“选择文件”按钮(JPG,PNG,GIF,DOC,XLS,PDF,ZIP,RAR,ZIPX)上传以下类型的文件

代码语言:javascript
复制
package Default;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.safari.SafariDriver;

public class Safari_demo {

    public static void main(String[] args) throws InterruptedException{

        WebDriver driver = new SafariDriver();

        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

        Thread.sleep(6000);

        driver.get("http://www.files.com/");

        driver.findElement(By.id("uploadFields")).click();

        //can you please help me with code in this line 
        //this is the place were i need to enter the address of the
        //file which is in my system  

        driver.close();
    }

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-25 12:05:21

SafariDriver似乎不支持文件上传:https://code.google.com/p/selenium/issues/detail?id=4220

票数 2
EN

Stack Overflow用户

发布于 2015-04-07 10:25:13

尝尝这个。

代码语言:javascript
复制
fd.findElement(By.xpath(".//*[@id='uploadFields']/input"))
                .sendKeys(
                        "your image path");
票数 0
EN

Stack Overflow用户

发布于 2015-04-07 09:20:20

因此,文件上传对话框实际上是一个本地系统对话框,而不是web对话框,因此您不能使用Selenium与其交互。在本地这样做的方法是将路径发送到filePath文本框,茶碟很好地描述了它:

对于在本地执行此操作的人,只需使用sendKeys命令在任何文件字段中键入文件的本地路径。这对所有司机来说都是一种魅力。当将此测试移动到远程服务器(例如,我们的Selenium2Cloud)时,您所需要做的就是使用setFileDetector方法让WebDriver知道,您正在将文件从本地计算机上载到远程服务器,而不仅仅是键入路径。几乎神奇的是,在编写固定的远程路径之前,文件将被base64编码并透明地通过JSON发送。这是一个很好的解决方案,因为它允许您将测试从本地切换到远程驱动程序,而不必担心更改测试代码。

https://saucelabs.com/resources/selenium-file-upload

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29483701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档