如何在使用移动仿真(Java)的同时向ChromeDriver添加参数?
我在JUnit/Selenium测试中使用ChromeDriver。我对台式机和移动设备都有测试 对于我的桌面测试,我指定了几个参数,以确保测试结果一致,如下所示:如何在使用移动仿真(Java)的同时向ChromeDriver添加参数?,java,selenium,selenium-chromedriver,Java,Selenium,Selenium Chromedriver,我在JUnit/Selenium测试中使用ChromeDriver。我对台式机和移动设备都有测试 对于我的桌面测试,我指定了几个参数,以确保测试结果一致,如下所示: DesiredCapabilities capabilities = DesiredCapabilities.chrome(); ChromeOptions desktopOptions = new ChromeOptions(); desktopOptions.addArguments("start-maximized", "d
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions desktopOptions = new ChromeOptions();
desktopOptions.addArguments("start-maximized", "disable-extensions",
"test-type", "no-default-browser-check", "ignore-certificate-errors");
capabilities.setCapability(ChromeOptions.CAPABILITY, desktopOptions);
driver = new RemoteWebDriver(service.getUrl(), capabilities);
对于我当前使用的移动测试:
Map<String, String> mobileEmulation = new HashMap<String, String>();
mobileEmulation.put("deviceName", "Apple iPhone 6");
Map<String, Object> mobileOptions = new HashMap<String, Object>();
mobileOptions.put("mobileEmulation", mobileEmulation);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, mobileOptions);
driver = new RemoteWebDriver(service.getUrl(), capabilities);
Map mobileEmulation=new HashMap();
mobileEmulation.put(“deviceName”、“苹果iPhone 6”);
Map mobileOptions=new HashMap();
mobileOptions.put(“mobileEmulation”,mobileEmulation);
DesiredCapabilities=DesiredCapabilities.chrome();
能力。设置能力(ChromeOptions.CAPABILITY,mobileOptions);
driver=新的RemoteWebDriver(service.getUrl(),功能);
我看不到为我的移动测试包含参数的方法(例如“禁用扩展”)
是否有任何方法可以重构mobile方法以允许指定参数
编辑:更清楚一点-我想做如下事情:
Map<String, String> mobileEmulation = new HashMap<String, String>();
mobileEmulation.put("deviceName", deviceType);
Map<String, Object> mobileOptions = new HashMap<String, Object>();
mobileOptions.put("mobileEmulation", mobileEmulation);
ChromeOptions chromeArgs = new ChromeOptions();
chromeArgs.addArguments("disable-extensions",
"test-type", "no-default-browser-check", "ignore-certificate-errors");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, mobileOptions);
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeArgs);
driver = new RemoteWebDriver(service.getUrl(), capabilities);
Map mobileEmulation=new HashMap();
mobileEmulation.put(“deviceName”,deviceType);
Map mobileOptions=new HashMap();
mobileOptions.put(“mobileEmulation”,mobileEmulation);
ChromeOptions chromeArgs=新的ChromeOptions();
chromeArgs.addArguments(“禁用扩展”),
“测试类型”、“无默认浏览器检查”、“忽略证书错误”);
DesiredCapabilities=DesiredCapabilities.chrome();
能力。设置能力(ChromeOptions.CAPABILITY,mobileOptions);
能力。设置能力(色度选项。能力,色度搜索);
driver=新的RemoteWebDriver(service.getUrl(),功能);
但是这些功能会相互覆盖。可能您可以这样做:
capabilities.setCapability("chrome.switches", Arrays.asList("--disable-extensions"));
这里有一个类似的答案得到了一个解决方案=)
(感谢chromedriver用户谷歌集团):
DesiredCapabilities=DesiredCapabilities.chrome();
Map mobileEmulation=new HashMap();
mobileEmulation.put(“deviceName”、“苹果iPhone 6”);
Map mobileOptions=new HashMap();
mobileOptions.put(“mobileEmulation”,mobileEmulation);
mobileOptions.put(“args”),Arrays.asList(“禁用扩展”,
“测试类型”、“无默认浏览器检查”、“忽略证书错误”);
能力。设置能力(ChromeOptions.CAPABILITY,mobileOptions);
driver=新的RemoteWebDriver(service.getUrl(),功能);
对ChromeOptions使用setExperimentalOption()方法
ChromeOptions提供了一种方法。这允许您设置许多选项,包括已设置的mobileEmulation
参数
将代码放在一起,可以使用以下方法:
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions chromeOptions= new ChromeOptions();
chromeOptions.addArguments("start-maximized", "disable-extensions",
"test-type", "no-default-browser-check", "ignore-certificate-errors");
Map<String, String> mobileEmulation = new HashMap<String, String>();
mobileEmulation.put("deviceName", "Apple iPhone 6");
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
driver = new RemoteWebDriver(service.getUrl(), capabilities);
DesiredCapabilities=DesiredCapabilities.chrome();
ChromeOptions ChromeOptions=新的ChromeOptions();
addArguments(“开始最大化”、“禁用扩展”),
“测试类型”、“无默认浏览器检查”、“忽略证书错误”);
Map mobileEmulation=new HashMap();
mobileEmulation.put(“deviceName”、“苹果iPhone 6”);
色度选项。设置实验选项(“移动模拟”,移动模拟);
能力。设置能力(ChromeOptions.CAPABILITY,ChromeOptions);
driver=新的RemoteWebDriver(service.getUrl(),功能);
不幸的是,它不适合:capabilities.setCapability(ChromeOptions.CAPABILITY,mobileOptions);因为我需要传递mobileEmulation值和参数。
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions chromeOptions= new ChromeOptions();
chromeOptions.addArguments("start-maximized", "disable-extensions",
"test-type", "no-default-browser-check", "ignore-certificate-errors");
Map<String, String> mobileEmulation = new HashMap<String, String>();
mobileEmulation.put("deviceName", "Apple iPhone 6");
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
driver = new RemoteWebDriver(service.getUrl(), capabilities);