java selenium+webdriver 使用教程
webdriver 驱动下载
Chrome:http://npm.taobao.org/mirrors/chromedriver/
https://chromedriver.storage.googleapis.com/index.html
Firefox:https://github.com/mozilla/geckodriver/releases
所需依赖
只需要 selenium-server 依赖即可
<dependencies>
<!-- <dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>3.141.59</version>
</dependency>-->
<!-- 或者用注释的坐标亦可 -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
</dependency>
</dependencies>
示例代码
以下是模拟打开本站登陆页面,各位可使用 Katalon Recorder 浏览器插件 自动生成代码,也可以参考下之前的 一个示例
public static void main(String[] args) throws InterruptedException {System.setProperty("webdriver.chrome.driver", "C:\\Users\\Administrator\\Downloads\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
// 与浏览器同步非常重要,必须等待浏览器加载完毕
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("https://cway.top");
Thread.sleep(2000);
driver.findElement(By.linkText(" 登录后台 ")).click();
Thread.sleep(2000);
driver.close();
driver.quit();}
其他操作
打开各种浏览器
//IE 浏览器
System.setProperty("webdriver.ie.driver", ".\\Tools\\IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
//Chrome
System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
//FireFox(自定义安装)
System.setProperty("webdriver.firefox.bin", "D:\\ProgramFiles\\Mozilla Firefox\\firefox.exe");
//FireFox 版本大于 48, 默认安装
System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");
//FireFox 版本小于 48
System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
亦可用 ChromeDriverService 类构建驱动
String webDriverPath = LagouSpider.class.getResource("chromedriver.exe").getPath();
// 这里需要注意一定要和打开的 Chrome 版本匹配
System.setProperty("webdriver.chrome.driver", webDriverPath);
// 构建驱动
ChromeDriverService service = new ChromeDriverService.Builder().
usingDriverExecutable(new File(webDriverPath)).usingAnyFreePort().build();
try {service.start();
} catch (IOException e) {e.printStackTrace();
}
// 获取 Web 驱动
WebDriver driver = new RemoteWebDriver(service.getUrl(), DesiredCapabilities.chrome());
只是最后要关闭 service
// 退出驱动线程
driver.quit();
// 关闭 service 服务
service.stop();
打开 URL
// 后退, 跳转到上一页
driver.navigate().back();
// 前进, 跳转到下一页
driver.navigate().forward ();
// 当前页刷新
driver.navigate().refresh();
// 浏览器窗口最大
driver.manage().window().maximize();
// 自定义设置浏览器尺寸
driver.manage().window().setSize(new Dimension(width, heigth));
关闭浏览器
// 关闭当前页面
driver.close();
// 关闭由 selenium 所启动的所有页面
driver.quit();
返回当前页标题与 URL
// 返回当前页面的 Ttile
String title = driver.getTitle();
// 返回当前页面的 url
String currentUrl = driver.getCurrentUrl();
其它常见方法
// 返回当前的浏览器的窗口句柄
String currentWindowHandle = driver.getWindowHandle()
// 返回当前的浏览器的所有窗口句柄
Set<String> allWindowHandles = driver.getWindowHandles();
// 返回当前页面的源码
String currentPageSource = getPageSource()
// 通过 xpath 获取元素 使用 By 还可以通过其他条件获取
WebElement titleElement = driver.findElement(By.xpath(titleExpression));
// 获取文本
String titleElementText = titleElement.getText();
// 获取属性
String titleElementHref = titleElement.getAttribute("href");
参考:https://www.cnblogs.com/andrew209/archive/2004/01/13/9011399.html
目录
webdriver 驱动下载
所需依赖
示例代码
其他操作
- 打开各种浏览器
- 打开 URL
- 关闭浏览器
- 返回当前页标题与 URL
- 其它常见方法
目录
webdriver 驱动下载
所需依赖
示例代码
其他操作
- 打开各种浏览器
- 打开 URL
- 关闭浏览器
- 返回当前页标题与 URL
- 其它常见方法