当前位置:   article > 正文

Selenium,ChromeDriver之Chrome浏览器设置,打印控制台日志(Network,console等)-番外篇_java chromedriver 控制打印

java chromedriver 控制打印

一、Chrome信息检测,chrome://chrome-urls/

chrome地址栏中输入 chrome://chrome-urls/

详情如下

检查版本信息,浏览器基本信息

chrome://version/

二、Chrome启动参数

参考地址https://peter.sh/experiments/chromium-command-line-switches/

一些常用配置:

//消除安全校验 可以直接无提示访问http网站
--allow-running-insecure-content
//默认最大化启动
--start-maximized
//关闭gpu
--disable-gpu
//无界面模式启动
--headless

三、chrome设置参数启动,可带多个参数

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-running-insecure-content --start-maximized

如图,在chrome图标->右键->属性->目标

四、chromeDriver下载

http://chromedriver.storage.googleapis.com/index.html

各个chrome浏览器和chromedriver版本对应关系,可以在连接中找到任意一个版本点击进去,查看notes.txt,如:

http://chromedriver.storage.googleapis.com/2.33/notes.txt

chrome浏览器与chromedriver版本对应

五、chromeDriver 添加扩充,initChromeOpts()方法

  1. /**
  2. * 通过Selenuim启动chrome浏览器
  3. * @author Baopz
  4. * @date 2018/05/24
  5. */
  6. public class SeleniumApplication {
  7. private static final String base = "https://www.baidu.com";
  8. public static void main(String[] args) {
  9. //设置驱动所在位置
  10. System.setProperty("webdriver.chrome.driver","C:\\Users\\Baopz\\Desktop\\dcm\\2.37\\chromedriver.exe");
  11. WebDriver driver = new ChromeDriver(initChromeOpts());
  12. driver.get(base);
  13. //做一些事
  14. try {
  15. TimeUnit.SECONDS.sleep(5);
  16. } catch (InterruptedException e) {
  17. e.printStackTrace();
  18. }
  19. //关闭浏览器
  20. driver.quit();
  21. }
  22. /**
  23. * 设置浏览器所需参数
  24. * @return
  25. */
  26. private static ChromeOptions initChromeOpts() {
  27. ChromeOptions chromeOptions = new ChromeOptions();
  28. //这里可以不设置浏览器所在位置,这样系统会寻找所需浏览器,如果没有找到,抛错
  29. chromeOptions.setBinary("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
  30. HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
  31. //禁止弹窗
  32. chromePrefs.put("profile.default_content_settings.popups", 0);
  33. //下载地址
  34. chromePrefs.put("download.default_directory", "C://xx//");
  35. //禁止图片加载
  36. chromePrefs.put("profile.managed_default_content_settings.images", 2);
  37. //userAgent=ie11
  38. String userAgentIE11="Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36";
  39. chromePrefs.put("profile.general_useragent_override", userAgentIE11);
  40. HashMap<String, Object> mobileEmulation = new HashMap<String, Object>();
  41. //用iPhone X 屏幕启动
  42. mobileEmulation.put("deviceName","iPhone X");
  43. chromeOptions.setExperimentalOption("prefs",chromePrefs);
  44. chromeOptions.setExperimentalOption("mobileEmulation",mobileEmulation);
  45.         /***********************************以下设置启动参数******************************************/
  46. //消除安全校验
  47. chromeOptions.addArguments("--allow-running-insecure-content");
  48. //启动最大化,防止失去焦点
  49. chromeOptions.addArguments("--start-maximized");
  50. //关闭gpu图片渲染
  51. chromeOptions.addArguments("--disable-gpu");
  52. return chromeOptions;
  53. }
  54. }

六、打印控制台日志实例
 

  1. package cn.ms22.driver;
  2. import org.openqa.selenium.WebDriver;
  3. import org.openqa.selenium.chrome.ChromeDriver;
  4. import org.openqa.selenium.chrome.ChromeOptions;
  5. import org.openqa.selenium.logging.LogType;
  6. import org.openqa.selenium.logging.LoggingPreferences;
  7. import org.openqa.selenium.remote.CapabilityType;
  8. import org.openqa.selenium.remote.DesiredCapabilities;
  9. import java.util.HashMap;
  10. import java.util.concurrent.TimeUnit;
  11. import java.util.logging.Level;
  12. /**
  13. * 通过chromeDriver 启动chrome浏览器
  14. * 通过设置日志,查看network控制台日志
  15. * @author baopz
  16. * @date 2019.02.21
  17. */
  18. public class DriverApplication {
  19. private static final String url = "https://www.baidu.com";
  20. public static void main(String[] args) {
  21. //设置驱动所在位置
  22. System.setProperty("webdriver.chrome.driver", "C:\\Users\\Administrator\\Desktop\\driver\\chromedriver.exe");
  23. WebDriver driver = new ChromeDriver(initChromeOpts());
  24. driver.get(url);
  25. //查看支持的日志类型
  26. for (String availableLogType : driver.manage().logs().getAvailableLogTypes()) {
  27. System.out.println(availableLogType);
  28. }
  29. //打印PERFORMANCE日志
  30. driver.manage().logs().get(LogType.PERFORMANCE).iterator().forEachRemaining(logEntry -> {
  31. System.out.println(logEntry.getMessage());
  32. });
  33. //做一些事
  34. try {
  35. TimeUnit.SECONDS.sleep(5);
  36. } catch (InterruptedException e) {
  37. e.printStackTrace();
  38. } finally {
  39. //关闭浏览器,并退出chromeDirver
  40. driver.quit();
  41. //只关闭浏览器,chromeDriver不会关闭,依然在后台运行
  42. // driver.close();
  43. }
  44. }
  45. /**
  46. * 设置浏览器所需参数
  47. *
  48. * @return
  49. */
  50. private static DesiredCapabilities initChromeOpts() {
  51. //这里可以不设置浏览器所在位置,这样系统会寻找所需浏览器,如果没有找到,抛错
  52. ChromeOptions chromeOptions = new ChromeOptions();
  53. chromeOptions.setBinary("C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe");
  54. HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
  55. //禁止弹窗
  56. chromePrefs.put("profile.default_content_settings.popups", 0);
  57. //下载地址
  58. chromePrefs.put("download.default_directory", "C://xx//");
  59. //禁止图片加载
  60. chromePrefs.put("profile.managed_default_content_settings.images", 2);
  61. //userAgent=ie11
  62. //String userAgentIE11="Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36";
  63. //chromePrefs.put("profile.general_useragent_override", userAgentIE11);
  64. //屏幕控制
  65. HashMap<String, Object> mobileEmulation = new HashMap<String, Object>();
  66. //用iPhone X 屏幕启动
  67. //mobileEmulation.put("deviceName","iPhone X");
  68. chromeOptions.setExperimentalOption("prefs", chromePrefs);
  69. chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
  70. /***********************************以下设置启动参数******************************************/
  71. //消除安全校验
  72. chromeOptions.addArguments("--allow-running-insecure-content");
  73. //启动最大化,防止失去焦点
  74. chromeOptions.addArguments("--start-maximized");
  75. //关闭gpu图片渲染
  76. chromeOptions.addArguments("--disable-gpu");
  77. //打开控制台
  78. //chromeOptions.addArguments("--auto-open-devtools-for-tabs");
  79. //其他,日志设置相关
  80. DesiredCapabilities caps = DesiredCapabilities.chrome();
  81. LoggingPreferences loggingPreferences = new LoggingPreferences();
  82. loggingPreferences.enable(LogType.PERFORMANCE, Level.ALL);
  83. loggingPreferences.enable(LogType.BROWSER, Level.ALL);
  84. caps.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
  85. caps.setCapability(CapabilityType.LOGGING_PREFS, loggingPreferences);
  86. return caps;
  87. }
  88. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/458011
推荐阅读
相关标签
  

闽ICP备14008679号