版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39513166/article/details/85103270
使用selenium之前需要去下载对应的浏览器驱动,并且下载的浏览器驱动的版本要和你的浏览器版本相对应。不然的话会报错的。
如何使用idea创建maven项目步骤
我这里使用的是谷歌的浏览器(版本是:68)。
各种版本的chromedriver下载:
http://chromedriver.storage.googleapis.com/index.html
selenium之 chromedriver与chrome版本映射表:
chromedriver版本 | 支持的Chrome版本 |
---|---|
v2.40 | v66-68 |
v2.39 | v66-68 |
v2.38 | v65-67 |
v2.37 | v64-66 |
v2.36 | v63-65 |
v2.35 | v62-64 |
v2.34 | v61-63 |
v2.33 | v60-62 |
v2.32 | v59-61 |
v2.31 | v58-60 |
v2.30 | v58-60 |
v2.29 | v56-58 |
v2.28 | v55-57 |
v2.27 | v54-56 |
v2.26 | v53-55 |
v2.25 | v53-55 |
v2.24 | v52-54 |
v2.23 | v51-53 |
v2.22 | v49-52 |
v2.21 | v46-50 |
v2.20 | v43-48 |
v2.19 | v43-47 |
v2.18 | v43-46 |
v2.17 | v42-43 |
v2.13 | v42-45 |
v2.15 | v40-43 |
v2.14 | v39-42 |
v2.13 | v38-41 |
v2.12 | v36-40 |
v2.11 | v36-40 |
v2.10 | v33-36 |
v2.9 | v31-34 |
v2.8 | v30-33 |
v2.7 | v30-33 |
v2.6 | v29-32 |
v2.5 | v29-32 |
v2.4 | v29-32 |
引用的maven包
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.13.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>3.13.0</version>
</dependency>
等maven引入完成之后就可以在新建好的项目里写代码了。
package com.test1;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
/**
* @Classname Test1
* @Description TODO
* @Date 2018/12/19 15:26
* @Created by Administrator
*/
public class Test1 {
public static void main(String[] args) throws Exception {
///////////如下为对百度网页进行一次搜索的过程;///////////
//driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 设置下 全局等待时间
//webdriver.chrome.driver:固定的,指谷歌驱动,D:/chrome/chromedriver.exe:驱动的位置
System.setProperty("webdriver.chrome.driver", "D:/chromed/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com/");
//显式等待, 针对某个元素等待(等元素加载起来后才触发)
// WebDriverWait类是由WebDirver提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。具体格式如下:
// WebDriverWait(driver, 10, 1)
// driver: 浏览器驱动。 10: 最长超时时间, 默认以秒为单位。 1: 检测的的间隔(步长) 时间, 默认为 0.5s。
WebDriverWait wait = new WebDriverWait(driver, 10, 1);
wait.until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver text) {
return text.findElement(By.id("kw"));
}
}).sendKeys("selenium");
//创建鼠标属性方法,然后获取id为kw的元素并点击。
//Actions action = new Actions(driver);
//action.moveToElement(driver.findElement(By.id("kw"))).perform();
//通过元素属性id=kw找到百度输入框,并输入"Selenium java";
driver.findElement(By.id("kw")).sendKeys("Selenium java");
Thread.sleep(1000);
//通过元素属性id=su找到百度一下搜索按钮,并对按钮进行点击操作;
driver.findElement(By.id("su")).click();
//移动到页面最底部
// ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, 10000)");
Thread.sleep(1000);
for (int j = 1; j < 10; j++) {
Thread.sleep(2000);
((JavascriptExecutor) driver).executeScript("window.scrollBy(0, " + j * 100 + ")");
}
System.out.println("退出循环了");
// //刷新页面
// driver.navigate().refresh();
driver.quit();
}
}