具有选项和代理的Chromedriver.添加移动仿真



以下是我用于chromedriver

的设置
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("127.0.0.1:3128");
proxy.setSslProxy("127.0.0.1:3128");
capabilities.setCapability("proxy", proxy);
// Add ChromeDriver-specific capabilities through
// ChromeOptions.
ChromeOptions options = new ChromeOptions();
options.addArguments("--incognito");
options.addArguments("--disable-bundled-ppapi-flash");
options.addArguments("--disable-extensions");
options.addArguments("--profile-directory=Default");
options.addArguments("--disable-plugins-discovery");
options.addArguments("--start-maximized");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);

driver = new ChromeDriver(capabilities);

,但我也想添加移动仿真。根据我在文档中阅读的内容,以下是我需要的

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);

,然后我将其设置为

之类的功能
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);

然后将其传递给Chromedriver。但是,如果我将其设置为所需的障碍,那么我的代理和其他选项将不再应用于所需的功能。

在保留代理和选项设置时如何模拟手机?

您可以通过键argsList<String>参数传递给chromeOptions的参数:

mobileEmulation设置结合在一起,这应该保留您的所有选项设置。

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);
// add this
chromeOptions.put("args", Arrays.asList("incognito", "disable-bundled-ppapi-flash",
    "disable-extensions", "profile-directory=Default", "disable-plugins-discovery",
    "start-maximized"));

您的代理设置也不应受到影响,您在ChromeOptions.CAPABILITY上调用setCapability,您的"proxy"设置保持不变。

相关内容

  • 没有找到相关文章

最新更新