目录
驱动配置
元素定位
By类普通参数方法
CSS选择器参数方法
By类xpath参数方法
驱动配置
//新建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(),'部分文本')]"))