2016-11-13 4 views
1

У меня возникли проблемы с загрузкой файла через Selenium RemoteWebDriver (хром-драйвер, используя селеновую сетку).Selenium RemoteWebDriver FileDetector Java

Подобно этой теме: Sending Keys to Input WebElement fails as it is not an absolute path

сделал некоторые исследования и, кажется, как работает это решение. Тем не менее, я получаю эту ошибку: Cannot resolve method 'setFileDetector(org.openqa.selenium.remote.LocalFileDetector)'

У меня был необходимый импорт. Вот мой удаленный метод установки WebDriver:

public WebDriver SetupRemoteChromeDriver(){ 

Integer pageTimeout = 50; 


final DesiredCapabilities capabilities = new DesiredCapabilities(); 

capabilities.setJavascriptEnabled(true); 
capabilities.setCapability("acceptSslCerts",true); 
capabilities.setCapability("cssSelectorsEnabled", false); 
capabilities.setCapability("applicationCacheEnabled", true); 
capabilities.setCapability("handlesAlerts", true); //this is new to try 
capabilities.setCapability(CapabilityType.BROWSER_NAME, "chrome"); 

WebDriver browser = null; 
try { 
    browser = new RemoteWebDriver(
      new URL("http://*ip*:4444/wd/hub"), 
      capabilities 
    ); 

    //File upload issue specific to chromedriver 
    browser.setFileDetector(new LocalFileDetector()); 
} catch (MalformedURLException e) { 
    e.printStackTrace(); 
} 


browser.manage().timeouts().pageLoadTimeout(pageTimeout, TimeUnit.SECONDS); 
browser.manage().timeouts().setScriptTimeout(pageTimeout, TimeUnit.SECONDS); 
browser.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 

return browser; 
} 

импорт в этот класс:

import com.gargoylesoftware.htmlunit.BrowserVersion; 
import org.apache.commons.io.FileUtils; 
import org.apache.commons.lang3.SystemUtils; 
import org.apache.log4j.LogManager; 
import org.apache.log4j.Logger; 
import org.openqa.selenium.*; 
import org.openqa.selenium.remote.*; 
import org.openqa.selenium.phantomjs.PhantomJSDriver; 
import org.openqa.selenium.phantomjs.PhantomJSDriverService; 


import java.io.File; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.ArrayList; 
import java.util.Date; 
import java.util.concurrent.TimeUnit; 

селена версия: 2.53.1 Согласно документации https://seleniumhq.github.io/selenium/docs/api/java/ RemoteWebDriver класса должен иметь этот метод. Любая идея, почему он не импортируется?

+0

Да, я попытался добавить это, но в любом случае 'setFileDetector' является методом класса' RemoteWebDriver'. – user1935987

ответ

3

Я думаю, вам нужно сменить строку WebDriver browser = null; на RemoteWebDriver browser = null;. Переменная browser определяется с типом WebDriver, который не имеет указанного метода.

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