Java Selenium-移动仿真-如何在自动化仿真器的同时将用户代理添加到Chrome选项?
下面是我添加的功能。我得到了一个谷歌复述卡 在我的网站,可以通过添加用户代理侵入 但是即使在添加了用户代理之后,我仍然可以得到验证码。还有其他方法可以添加它吗Java Selenium-移动仿真-如何在自动化仿真器的同时将用户代理添加到Chrome选项?,java,selenium,chrome-options,mobile-emulator,Java,Selenium,Chrome Options,Mobile Emulator,下面是我添加的功能。我得到了一个谷歌复述卡 在我的网站,可以通过添加用户代理侵入 但是即使在添加了用户代理之后,我仍然可以得到验证码。还有其他方法可以添加它吗 Map<String, String> mobileEmulation = new HashMap<>(); mobileEmulation.put("deviceName", "Pixel 2"); Map<String, Object> chromeOptions = new HashMap<
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);
Map mobileEmulation=new HashMap();
mobileEmulation.put(“设备名称”、“像素2”);
Map chromeOptions=new HashMap();
chromeOptions.put(“移动模拟”,移动模拟);
chromeOptions.put(“args”,
asList(“禁用捆绑的ppapi闪存”,
“禁用扩展”,
“配置文件目录=默认值”,
“禁用插件发现”,
“--用户代理=“+userAgent”);
ChromeOptions co=新的ChromeOptions();
co.addArguments(“mobileEmulation=“+mobileEmulation”);
DesiredCapabilities=DesiredCapabilities.chrome();
能力。设置能力(色度选项。能力,色度选项);
setProperty(“webdriver.chrome.driver”,RunConfig.chrome\u driver\u EXE);
驱动程序=新的色度驱动程序(功能);
您可以在Chrome web浏览器中使用以下配置进行移动仿真:
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);
公共类手机模拟测试{
公共静态WebDriver;
@以前
公共作废设置(){
WebDriverManager.chromedriver().setup();
}
@试验
public void emulatorTest()引发InterruptedException{
Map mobileEmulation=new HashMap();
mobileEmulation.put(“deviceName”、“iPhone6”);
ChromeOptions ChromeOptions=新的ChromeOptions();
色度选项。设置实验选项(“移动模拟”,移动模拟);
驱动器=新的色度驱动器(色度选项);
驱动程序。获取(“https://www.google.co.uk");
}
}
添加网络潜水员管理器依赖项
我正在开发的网站有一个单独的用户代理。它有助于侵入验证码。知道在哪里添加它吗?有一个设置,对于特定的用户代理,captcha不会出现。要从该用户代理发送请求,我给出的代码将起作用。这对我来说是有效的,在这里有效的主要东西是你的代码中缺少的一点;请参见如何在此处传递useragent的示例mobileEmulation.put(“useragent”、“Mozilla/5.0(Linux;Android 8.0.0;“+”Pixel 2 XL Build/OPD1.170816.004)AppleWebKit/537.36(KHTML,如Gecko)”+“Chrome/67.0.3396.99 Mobile Safari/537.36”);你有没有试过不带符号的用户代理???
// co.addArguments("mobileEmulation=" + mobileEmulation);
co.setExperimentalOption("mobileEmulation", mobileEmulation);
public class mobileEmulatorTest {
public static WebDriver driver;
@Before
public void setUp(){
WebDriverManager.chromedriver().setup();
}
@Test
public void emulatorTest() throws InterruptedException {
Map<String, String> mobileEmulation = new HashMap<>();
mobileEmulation.put("deviceName", "iPhone 6");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
driver = new ChromeDriver(chromeOptions);
driver.get("https://www.google.co.uk");
}
}