验证不同的浏览器驱动是否正常使用。
import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.opera.OperaDriver; import org.openqa.selenium.phantomjs.PhantomJSDriver; WebDriver driver = new ChromeDriver(); //Chrome浏览器 WebDriver driver = new FirefoxDriver(); //Firefox浏览器 WebDriver driver = new EdgeDriver(); //Edge浏览器 WebDriver driver = new InternetExplorerDriver(); // Internet Explorer浏览器 WebDriver driver = new OperaDriver(); //Opera浏览器 WebDriver driver = new PhantomJSDriver(); //PhantomJS 第三章 Selenium 简单示例打开百度进行搜索:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; /** * @Description: 通过selenium操作浏览器打开百度进行搜索 * selenium版本:3.12.0; 通过maven管理jar包 * 开发工具:IDEA * jdk:1.8 * 浏览器:chrome 75+ * @Author: ggf * @Date: 2020/03/22 */ public class BaiduSearch { public static void main(String[] args) { // 1.创建webdriver驱动 WebDriver driver = new ChromeDriver(); // 2.打开百度首页 driver.get("https://www.baidu.com"); // 3.获取输入框,输入selenium driver.findElement(By.id("kw")).sendKeys("selenium"); // 4.获取“百度一下”按钮,进行搜索 driver.findElement(By.id("su")).click(); // 5.退出浏览器 driver.quit(); } } 第四章 八大元素定位
为什么要进行元素定位?
我们必须告诉 selenium 怎么去定位元素,用来模拟用户的动作,或者查看元素的属性和状态,以便于我们可以执行检查。例如:我们要搜索一个产品,首先要找到搜索框与搜索按钮,接着通过键盘输入要查询的关键字,最后鼠标单击搜索按钮,提交搜索请求。
正如上述的人工操作步骤一样,我们也希望 selenium 能模拟这样的动作,然而,selenium 并不能理解类似在搜索框中输入关键字或者点击搜索按钮这样的图形化的操作。所以需要我们程序化的告诉 selenium 如何定位搜索框和搜索按钮,从而模拟键盘和鼠标的操作。
4.1.定位方式selenium 提供了8种的定位方式:
id
name
class name
tag name
link text
partial link text
xpath
css selector
这8种定位方式在java selenium 中对应的方法为:
方法 描述 参数 示例findElement(By.id()) 通过元素的 id 属性值来定位元素 对应的id属性值 findElement(By.id("kw"))
findElement(By.name()) 通过元素的 name 属性值来定位元素 对应的name值 findElement(By.name("user"))
findElement(By.className()) 通过元素的 class 名来定位元素 对应的class类名 findElement(By.className("passworld"))
findElement(By.tagName()) 通过元素的 tag 标签名来定位元素 对应的标签名 findElement(By.tagName("input"))
findElement(By.linkText()) 通过元素标签对之间的文本信息来定位元素 文本内容 findElement(By.linkText("登录"))
findElement(By.partialLinkText()) 通过元素标签对之间的部分文本信息来定位元素 部分文本内容 findElement(By.partialLinkText("百度"))
findElement(By.xpath()) 通过xpath语法来定位元素 xpath表达式 findElement(By.xpath("//input[@id='kw']"))
findElement(By.cssSelector()) 通过css选择器来定位元素 css元素选择器 findElement(By.cssSelector("#kw"))
同时这8种方法都对应有着返回复数元素的方法,分别在调用的方法findElements(By.id()) 加上一个s:
findElements(By.id())
findElements(By.name())
findElements(By.className())
findElements(By.tagName())
findElements(By.linkText())
findElements(By.partialLinkText())
findElements(By.xpath())
findElements(By.cssSelector())
4.2.定位方式的用法