2014-01-09 4 views
0

Я пытаюсь загрузить файл с помощью драйвера Safari.org.openqa.selenium.WebDriverException: Неизвестная команда: uploadFile

Вот мой код:

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 

ответ

0

Изменить

RemoteWebDriver driver = new SafariDriver(browserCapabillities); 

в

RemoteWebDriver driver = new RemoteWebDriver(urlofhub,browserCapabillities); 

См this пост для примера кода.

+0

Спасибо за ваше предложение. Я добавил хаб. Теперь нет никаких исключений. По-прежнему sendKeys не обновляет путь к файлу. Просто fyi, я использую «загрузку файла Jasny с компонентом Bootstrap 3». – user3175598

+0

Никогда не использовал это ... – Akbar

Смежные вопросы