Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操做同样。而对于爬虫来讲,使用Selenium操控浏览器来爬取网上的数据那么确定是爬虫中的杀手武器。这里,我将介绍selenium + 谷歌浏览器的通常使用。首先会介绍如何安装部署环境,而后贴出一些本人所使用的一些方法,最后给出github地址,供你们下载。css
/** * 用来测试第一个代码,访问百度 */ @Test public void testHelloWorld() throws Exception { //开启个浏览器而且输入连接 WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/"); //获得浏览器的标题 System.out.println(driver.getTitle()); Thread.sleep(5000); //关闭浏览器 下面是关闭全部标签页,还有一个代码是 driver.close();, 关闭当前标签页 driver.quit(); }
/** * 测试向input标签输入值 */ @Test public void testInputStrByJS(){ //开启个浏览器而且输入连接 WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/"); //向input输入值 PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园"); }
/** * 测试点击 */ @Test public void testScrollToElementAndClick() throws Exception { //一、开启个浏览器而且输入连接 WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/"); //二、向百度输入框输入须要查询的值 PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园"); //三、获得百度一下的标签 WebElement submitElement = driver.findElement(By.cssSelector("input#su")); //四、点击百度一下 PageUtils.scrollToElementAndClick(submitElement, driver); //休息3秒,加载数据 Thread.sleep(3000); //五、首先找到 id 为 content_left 的 div 下面的全部 div List<WebElement> divElements = driver.findElements(By.cssSelector("div#content_left div")); //六、找到搜索的第一个连接 WebElement aElement = divElements.get(0).findElement(By.cssSelector("div.f13 a[href]")); //七、点击该连接 PageUtils.scrollToElementAndClick(aElement, driver); }
/** * 测试切换到另外一个标签页 */ @Test public void testGetAnotherPage() throws Exception { //一、开启个浏览器而且输入连接 WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/"); //二、向百度输入框输入须要查询的值 PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园"); //三、获得百度一下的标签 WebElement submitElement = driver.findElement(By.cssSelector("input#su")); //四、点击百度一下 PageUtils.scrollToElementAndClick(submitElement, driver); //休息3秒,加载数据 Thread.sleep(3000); //五、首先找到 id 为 content_left 的 div 下面的全部 div List<WebElement> divElements = driver.findElements(By.cssSelector("div#content_left div")); //六、找到搜索的第一个连接 WebElement aElement = divElements.get(0).findElement(By.cssSelector("div.f13 a[href]")); //七、点击该连接 PageUtils.scrollToElementAndClick(aElement, driver); //八、当前页面时百度的页面 //将浏览器对象强制转为能够执行js的对象 System.out.println("如今的页面是:"+driver.getTitle()); //九、切换到博客园页面 PageUtils.getAnotherPage(driver); //将浏览器对象强制转为能够执行js的对象 System.out.println("如今的页面是:"+driver.getTitle()); }