Java 无法设置Chrome Android的实验选项,以禁用弹出式询问Selenium在何处保存文件
这同样适用于在Android上创建Chrome驱动程序:Java 无法设置Chrome Android的实验选项,以禁用弹出式询问Selenium在何处保存文件,java,selenium,selenium-chromedriver,Java,Selenium,Selenium Chromedriver,这同样适用于在Android上创建Chrome驱动程序: @Override public WebDriver newDriver() { try { ChromeOptions options = new ChromeOptions(); //set fake camera options.addArguments( "--allow-file-access-from-files",
@Override
public WebDriver newDriver() {
try {
ChromeOptions options = new ChromeOptions();
//set fake camera
options.addArguments(
"--allow-file-access-from-files",
"--use-fake-ui-for-media-stream",
"--allow-file-access",
"--use-file-for-fake-audio-capture=" + rootDir + "/src/test/resources/files/fake_webcam.y4m",
"--use-fake-device-for-media-stream");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "emulator-5554");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("autoAcceptAlerts", true);
capabilities.setCapability("autoGrantPermissions", true);
capabilities.setCapability("automationName", "UiAutomator2");
capabilities.setCapability("browserName", "chrome");
capabilities.setCapability("newCommandTimeout", 300);
capabilities.setCapability("chromedriverExecutableDir", rootDir+"/src/test/resources/drivers/windows");
options.merge(capabilities);
URL url = new URL("http://0.0.0.0:4723/wd/hub");
AndroidDriver<WebElement> driver = new AndroidDriver<WebElement>(url, options);
sessionID = ((RemoteWebDriver) driver).getSessionId();
System.out.println("SESSION ID HERE: ["+sessionID.toString()+"]");
return driver;
} catch (Exception e) {
throw new Error(e);
}
}
有人能告诉我为什么以及如何解决这个问题吗?
我尝试了很多方法,但都不能解决这个问题
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_settings.popups", 0);
prefs.put("profile.default_content_setting_values.automatic_downloads",1);
prefs.put("download.prompt_for_download", false);
prefs.put("download.directory_upgrade", true);
prefs.put("download.default_directory", rootDir+"/storage/emulated/0/Download");
prefs.put("safebrowsing.enabled", false);
options.setExperimentalOption("prefs", prefs);
java.lang.Error: org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: An unknown server-side error occurred while processing the command. Original error: invalid argument: cannot parse capability: goog:chromeOptions
from invalid argument: unrecognized chrome option: prefs
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: '6780-ANHPV-LT-D', ip: '192.168.1.29', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_251'
Driver info: driver.version: CustomAndroidChromeDriver
remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: invalid argument: cannot parse capability: goog:chromeOptions
from invalid argument: unrecognized chrome option: prefs
at getResponseForW3CError (C:\Users\ADMIN\AppData\Roaming\npm\node_modules\appium\node_modules\appium-base-driver\lib\protocol\errors.js:804:9)
at asyncHandler (C:\Users\ADMIN\AppData\Roaming\npm\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol.js:381:37)
Driver info: driver.version: CustomAndroidChromeDriver
at bellFace.automation.utils.CustomAndroidChromeDriver.newDriver(CustomAndroidChromeDriver.java:68)
at net.serenitybdd.core.webdriver.driverproviders.ProvidedDriverProvider.newInstance(ProvidedDriverProvider.java:23)
Caused by: org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: An unknown server-side error occurred while processing the command. Original error: invalid argument: cannot parse capability: goog:chromeOptions
from invalid argument: unrecognized chrome option: prefs