无法使用无头模式 Selenium 定位元素
Cannot locate elements using headless mode Selenium
由于此限制,我无法使用无头模式定位元素 "All users will have to use google Chrome when accessing our sites."
我们的管理员添加了此限制,因此用户只能使用 Google chrome。
我的密码是
@Test(priority = 1)
public void setupApplication() throws IOException {
/*
* open browser (GoogleChrome) and enter user credentials
*/
ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");
options.addArguments("--disable-gpu");
options.addArguments("--disable-extensions");
options.setExperimentalOption("useAutomationExtension", false);
options.addArguments("--proxy-server='direct://'");
options.addArguments("--proxy-bypass-list=*");
options.addArguments("--start-maximized");
options.addArguments("--headless");
driver = new ChromeDriver(options);
driver.get("link");
log.info("Launching chrome browser");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("C:/Automation Testing/scr3.png"));
}
很遗憾,我无法展示我们的link。
我的问题是如何绕过这个并找到元素?
提前致谢!
enter image description here
更新
如果您想绕过无头代理足迹,请附上以下参数:
--user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.50 Safari/537.36
注意:您应用到 user-agent 参数的任何版本都将显示在请求 header 信息中。
...或与您项目的 'admins' 交谈,以便他们可以将无头 chrome 代理包含到 white-list.
这是来自chrome的正常代理信息:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100
Safari/537.36
这里是无头chrome
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/69.0.3497.100
Safari/537.36
如您所见,无头 chrome 代理被调用:HeadlessChrome
由于此限制,我无法使用无头模式定位元素 "All users will have to use google Chrome when accessing our sites." 我们的管理员添加了此限制,因此用户只能使用 Google chrome。
我的密码是
@Test(priority = 1)
public void setupApplication() throws IOException {
/*
* open browser (GoogleChrome) and enter user credentials
*/
ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");
options.addArguments("--disable-gpu");
options.addArguments("--disable-extensions");
options.setExperimentalOption("useAutomationExtension", false);
options.addArguments("--proxy-server='direct://'");
options.addArguments("--proxy-bypass-list=*");
options.addArguments("--start-maximized");
options.addArguments("--headless");
driver = new ChromeDriver(options);
driver.get("link");
log.info("Launching chrome browser");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("C:/Automation Testing/scr3.png"));
}
很遗憾,我无法展示我们的link。 我的问题是如何绕过这个并找到元素?
提前致谢! enter image description here
更新
如果您想绕过无头代理足迹,请附上以下参数:
--user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.50 Safari/537.36
注意:您应用到 user-agent 参数的任何版本都将显示在请求 header 信息中。
...或与您项目的 'admins' 交谈,以便他们可以将无头 chrome 代理包含到 white-list.
这是来自chrome的正常代理信息:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
这里是无头chrome
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/69.0.3497.100 Safari/537.36
如您所见,无头 chrome 代理被调用:HeadlessChrome