目录
驱动配置
java
//新建chrome浏览器驱动配置
ChromeOptions options = new ChromeOptions();
//添加参数,允许远程访问
options.addArguments("--remote-allow-origins=*");
//新建WebDriver浏览器驱动
WebDriver driver = new ChromeDriver(options);
元素定位
Webdriver提供了三类定位元素的方法,包括:
- By类常用方法
- CSS选择器方法
- By类xpath方法
不管用哪种方式,必须保证页面上该属性的唯一性。
所有的定位方法都是 findElement() 方法,只是参数不同。
除 findElement() 方法外,还有 findElements() 方法。前者返回单个元素,后者返回元素集合。
By类普通参数方法
方法 | 描述 | 参数 |
---|---|---|
findElement(By.id("属性值")) | 通过元素的 id 属性值来定位元素 | 对应的id属性值 |
findElement(By.name("属性值")) | 通过元素的 name 属性值来定位元素 | 对应的name值 |
findElement(By.className("类名")) | 通过元素的 class 名来定位元素 | 对应的class类名 |
findElement(By.tagName("标签名")) | 通过元素的 tag 标签名来定位元素 | 对应的标签名 |
findElement(By.linkText("文本")) | 通过元素标签对之间的文本信息来定位元素 | 文本内容 |
findElement(By.partialLinkText("部分文本")) | 通过元素标签对之间的部分文本信息来定位元素 | 部分文本内容 |
CSS选择器参数方法
id选择器:findElement(By.cssSelector("#kw")
name定位:findElement(By.cssSelector("[name=wd]")
class选择器:findElement(By.cssSelector(".s_ipt")
标签选择器:findElement(By.cssSelector("div")
使用CSS选择器作为参数时,可以根据CSS的层级定位进行输入,如:
findElement(By.cssSelector("html > body > form > span > input"))
findElement(By.cssSelector("span.soutu-btn> input#kw"))
By类xpath参数方法
|---------------------------------|-------------|
| xpath 常用符号、格式和方法 ||
| 符号 | 说明 |
| * | 通配符 |
| / | 绝对路径 |
| // | 相对路径 |
| [下标] | 索引,从1开始 |
| 标签名[@属性名='属性值'] | 属性值表示格式 |
| [text()='文本'] | 文本定位 |
| [contains(text(),'部分文本')] | 部分文本定位 |
部分定位方法示例:
id定位:findElement(By.xpath("//*[@id='kw']"))
name定位:findElement(By.xpath("//*[@name='wd']"))
class属性定位:findElement(By.xpath("//input[@class='s_ipt']"))
定位绝对路径:findElement(By.xpath("/html/body/form/span/input"))
定位相对路径:findElement(By.xpath("//form[@id='form']/span/input"))
索引定位:findElement(By.xpath("/form/span[1]/input"))
组合属性定位:findElement(By.xpath("//input[@id='kw' and @name='wd']"))
文本定位:findElement(By.xpath("//span[text()='文本']"))
部分文本定位:findElement(By.xpath("//span[contains(text(),'部分文本')]"))