1. 程式人生 > >Selenium+java 獲取頁面的console.log()內容

Selenium+java 獲取頁面的console.log()內容

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);//本次需要獲取的某列資訊*/