【爬虫】Selenium+chrome

一、下载对应chrome版本的webdriver

 https://npm.taobao.org/mirrors/chromedriver

 

二、pom

<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-java</artifactId>
   <version>3.141.59</version>
</dependency>

 

三、初始化selenium

System.setProperty("webdriver.chrome.driver",driverPath+"/chromedriver.exe");
ChromeOptions chromeOptions=new ChromeOptions();
//设置 chrome 的无头模式
chromeOptions.setHeadless(Boolean.TRUE); //TRUE为无头模式
chromeOptions.addArguments("--disable-gpu"//禁止使用gpu
                ,"--blink-settings=imagesEnabled=false"//禁止加载图片
                ,"--user-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"//使用user-agent
        );
chromeOptions.setCapability("enableVideo", false);//禁止播放视频
//启动一个 chrome 实例
webDriver = new ChromeDriver(chromeOptions);
webDriver.manage().timeouts().setScriptTimeout(15,TimeUnit.SECONDS);//设置15秒超时时间
//webDriver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
webDriver.manage().timeouts().pageLoadTimeout(15,TimeUnit.SECONDS);

 

四、访问URL,返回页面dom

try {
     webDriver.get(url);
}catch (TimeoutException e){            
     ((JavascriptExecutor)webDriver).executeScript("window.stop()");
}
return webDriver.getPageSource();

 

五、输入框填值

WebDriverWait wait1 = new WebDriverWait(seleniumUtil.getWebDriver(), 10);
WebElement element1=wait1.until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[name=username]")));
element1.click();
element1.sendKeys(userName);

 

posted @ 2019-10-31 13:19  小小爬虫  阅读(439)  评论(0编辑  收藏  举报