Selenium——浏览器设置

1. 背景
由于Selenium操作浏览器是不加载任何配置的,因此会导致自动胡测试失败。

2. 解决方案
chromeOptions

设置 chrome 二进制文件位置 (binary_location)
添加启动参数 (add_argument)
添加扩展应用 (add_extension, add_encoded_extension)
添加实验性质的设置参数 (add_experimental_option)
设置调试器地址 (debugger_address)

EdgeOptions同上

EdgeOptions适用于Chromium内核的Edge浏览器(已经集成至Selenium4.0)
若4.0以下版本想要使用EdgeOptions,需使用[msedge-selenium-tools-java](https://github.com/microsoft/edge-selenium-tools/releases)

3. 示例

System.setProperty("webdriver.chrome.driver", driver);
DesiredCapabilities desiredCapabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.merge(desiredCapabilities);
options.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(options);

若使用Edge浏览器,将上记代码中的chrome关联的代码换成Edge即可。
实测,Selenium3.5版本无效,2.52和3.9版本有效。

4. 参考

  1. 设置下载目录
prefs.put("download.prompt_for_download", false);
prefs.put("download.default_directory", System.getProperty("user.dir"));
  1. 禁用自动下载
prefs.put("download.prompt_for_download", true);
  1. 禁用自动优化
options.setExperimentalOption("useAutomationExtension", false); 
options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
  1. 模拟移动端
//Android
options.add_argument('User-Agent=Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36')

你可能感兴趣的:(Selenium,selenium,chrome,edge)