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

org.openqa.selenium.WebDriverException:未知命令:uploadFile,selenium,safari,selenium-webdriver,Selenium,Safari,Selenium Webdriver,我正在尝试使用Safari驱动程序上载文件 这是我的密码: DesiredCapabilities browserCapabillities = DesiredCapabilities.safari(); RemoteWebDriver driver = new SafariDriver(browserCapabillities); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.get("myApp

我正在尝试使用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。幸亏但有了苹果脚本,我不得不让我的机器解锁

我觉得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
改变

RemoteWebDriver driver = new SafariDriver(browserCapabillities);


有关示例代码,请参阅帖子。

谢谢您的建议。我添加了hub。现在也不例外。sendKeys仍然没有更新文件路径。仅供参考,我正在使用Jasny的文件上传和Bootstrap3组件。
RemoteWebDriver driver = new RemoteWebDriver(urlofhub,browserCapabillities);