org.openqa.selenium.WebDriverException:未知命令:uploadFile

时间:2014-01-09 00:57:37

标签: selenium safari selenium-webdriver

我正在尝试使用Safari驱动程序上传文件。

这是我的代码:

DesiredCapabilities browserCapabillities = DesiredCapabilities.safari();
RemoteWebDriver driver = new SafariDriver(browserCapabillities);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("myAppURL");

WebElement upload = driver.findElementByXPath("//input[@id='fileElementId']");
RemoteWebElement webElement = ((RemoteWebElement) upload);

LocalFileDetector detector = new LocalFileDetector();
webElement.setFileDetector(detector);

File f = detector.getLocalFile("myFilePath");
upload.sendKeys(f.getAbsolutePath()); // Generating exception: 
    // org.openqa.selenium.WebDriverException: Unknown command: uploadFile

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

目前唯一对我有用的是AppleScript。感谢Using AppleScript to choose a file in Safari。但是使用Apple Script我必须让我的机器解锁。

我觉得LocalFileDetector是一个更好的解决方案,因为即使机器被锁定我也想运行我的测试。

我不确定以下是否有帮助?

driver.setFileDetector(new LocalFileDetector()); // I am getting
   // org.openqa.selenium.WebDriverException: Setting the file detector only    
   // works on remote webdriver instances obtained via RemoteWebDriver

1 个答案:

答案 0 :(得分:0)

更改

RemoteWebDriver driver = new SafariDriver(browserCapabillities);

RemoteWebDriver driver = new RemoteWebDriver(urlofhub,browserCapabillities);

请参阅this帖子以获取示例代码。