java - Selenium - 移动仿真 - 如何在自动化仿真器时将用户代理添加到 Chrome 选项?

标签 java selenium chrome-options mobile-emulator

以下是我添加的功能。我收到 Google reCAPTCHA 在我的网站上,可以通过添加用户代理来侵入。

但即使在添加了用户代理之后,我仍然得到验证码。还有其他方法可以添加吗?

Map<String, String> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceName", "Pixel 2");

Map<String, Object> chromeOptions = new HashMap<>();
chromeOptions.put("mobileEmulation", mobileEmulation);

chromeOptions.put("args",
                  Arrays.asList("disable-bundled-ppapi-flash",
                  "disable-extensions",
                  "profile-directory=Default",
                  "disable-plugins-discovery",
                  "--user-agent=" + userAgent));

ChromeOptions co = new ChromeOptions();
co.addArguments("mobileEmulation="+mobileEmulation);

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY,chromeOptions);

System.setProperty("webdriver.chrome.driver", RunConfig.CHROME_DRIVER_EXE);

driver = new ChromeDriver(capabilities);

最佳答案

您可以在 Chrome 网络浏览器中使用以下配置进行移动仿真:

Map<String, Object> deviceMetrics = new HashMap<>();
deviceMetrics.put("width", 1078);
deviceMetrics.put("height", 924);
deviceMetrics.put("pixelRatio", 3.0);
Map<String, Object> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceMetrics", deviceMetrics);
mobileEmulation.put("userAgent", "Mozilla/5.0 (Linux; Android 8.0.0;" +
"Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML,
like Gecko) " +
"Chrome/67.0.3396.99 Mobile Safari/537.36");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
driver = new ChromeDriver(chromeOptions);

而不是添加要使用的参数 setExpermentalOption

// co.addArguments("mobileEmulation=" + mobileEmulation);
co.setExperimentalOption("mobileEmulation", mobileEmulation);

关于java - Selenium - 移动仿真 - 如何在自动化仿真器时将用户代理添加到 Chrome 选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52273722/

相关文章:

java - 如何使用 xpath 来确定我们选择哪个子元素?

c# - 在 Chrome 中捕获 XHR/Ajax 请求

Java 图形2D;切换我拥有的形状对象的绘制顺序?

java - 随机数测试(直方图)

python - Selenium w/Python3 - AttributeError : 'str' object has no attribute 'tag_name'

javascript - Chrome 扩展选项

ruby - chromedriver 不使用 download.defaultDirectory

java - 与 Websphere 服务器的 JMS 连接

java - 如何从 OpenStreetMap 离线创建 map 图 block ,在 Android 上显示?

Java selenium 抓取元素的整个 html 内容