我正在尝试在移动仿真模式下启动chrome,并且还希望在启动之前设置用户代理。我已经找到了一次执行此操作的方法,但无法为同一个chrome实例执行此操作。 以下是我的代码:
String useragent="Mozilla/5.0 (Windows NT 6.1\\; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36 WFBTesting";
Map<String, String> mobileEmulation = new HashMap<String, String>();
mobileEmulation.put("deviceName", "Google Nexus 5");
Map<String, Object> chromeOptions = new HashMap<String, Object>();
chromeOptions.put("mobileEmulation", mobileEmulation);
ChromeOptions options = new ChromeOptions();
options.addArguments("--user-agent="+useragent);
options.addArguments("--test-type");
options.addArguments("--allow-running-insecure-content");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
//capabilities.setCapability(ChromeOptions.CAPABILITY,(chromeOptions));
capabilities.setCapability(ChromeOptions.CAPABILITY,options);
WebDriver driver = new ChromeDriver(capabilities);
在上面的代码中,我可以在&#34; capabilities.setCapability(ChromeOptions.CAPABILITY,选项)中传递选项或chromeOptions;&#34;但如果使用选项和其他使用chromeOptions编写两个setCapability方法,则只有其中一个对启动的chrome会话有效,而不是两者都有效。请建议设置这两种功能并启动chrome会话的最佳方法。
修改 正如我所建议的那样: 再次感谢@Cyildirim的回复。我这次使用了以下代码代码:
Map<String, String> mobileEmulation = new HashMap<String, String>();
mobileEmulation.put("deviceName", "Google Nexus 5");
Map<String, Object> chromeOptions = new HashMap<String, Object>();
chromeOptions.put("args", Arrays.asList("user-agent=Mozilla/5.0 (Windows NT 6.1\\; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36 WFBTesting","test-type","allow-running-insecure-content"));
chromeOptions.put("mobileEmulation", mobileEmulation);DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY,(chromeOptions));
但即使使用上面我也无法正确设置用户配置文件。仅设置了移动仿真功能。如果我在Array中错误地编写useragent,你能纠正我吗?或任何其他建议使其发挥作用。
答案 0 :(得分:1)
你试过设置它们吗?
capabilities.setCapability(ChromeOptions.CAPABILITY,chromeOptions);
capabilities.setCapability(ChromeOptions.CAPABILITY,options);