Selenium+java 獲取頁面的console.log()內容
阿新 • • 發佈:2018-12-17
Selenium+java 獲取頁面的console.log()內容,並且獲取預設使用者的配置資訊,chrome支援獲取,Firefox不支援,會報錯。
下面 我們用chrome為測試瀏覽器啟動,並獲取console.log的內容。
如果不懂chromedriver.exe如何配置,或者user-data-dir在哪裡,在本分類第一章中檢視。
//配置谷歌啟動的必要設定
System.setProperty("webdriver.chrome.bin", "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe");
System.setProperty("webdriver.chrome.driver", "C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe");
//設定Webdriver啟動chrome為預設使用者的配置資訊(包括書籤、擴充套件程式等)
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=C:/Users/acer/AppData/Local/Google/Chrome/User Data");
//為了獲取console的日誌輸出
DesiredCapabilities caps = DesiredCapabilities.chrome();
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.INFO);//輸入為info的日誌
caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
caps.setCapability(ChromeOptions.CAPABILITY, options);
//傳入谷歌啟動器中
WebDriver driver = new ChromeDriver(caps);
driver.manage().window().maximize();//視窗最大化
driver.get("https://blog.csdn.net/qq_37581708");//開啟測試地址
以上是開啟地址前的配置
下面是 開啟後獲取console的java程式碼,最好封裝成一個方法 ,哪裡需要調哪裡。
//獲取全部的console資訊 LogEntries logEntries =driver.manage().logs().get(LogType.BROWSER); Thread.sleep(1000); for(LogEntry entry : logEntries) { //依次打印出console資訊 System.out.println("chrome.console===="+" "+entry.getMessage()); } // 下面是 根據業務需求編寫的 獲取資訊 /*Thread.sleep(1000); List<LogEntry>list=driver.manage().logs().get(LogType.BROWSER).getAll(); String content=list.get(list.size()-1).getMessage();//根據需求獲取最後一次資訊 String tempStr=content.substring(content.indexOf("\"") + 1, content.lastIndexOf("\"")); System.out.println(tempStr);//本次需要獲取的某列資訊*/