selenium的7种元素定位方式以及使用
1、第一种,元素ID定位
代码显示:
元素定位法:driver.findElement(By.id("indexPageId")).click();
2、第二种,元素name定位
代码显示:
元素定位法:driver.findElement(By.name("username")).sendKeys("123456");
3、第三种,文字定位(部分文字定位与全部文字定位)
全部文字定位(这种方法的好处是,可以避免同一个页面上,有相同文字引起的元素定位不到问题)
代码显示:
元素定位法:driver.findElement(By.linkText("登录")).click();
部分文字定位(这种适用于在一个页面上,只有这一个关键词的)
代码显示:
元素定位法:driver.findElement(By.partialLinkText("忘记")).click();
4、第四种 使用元素标签定位
因为同一个页面上可能存在多个相同的标签名称,所有只有第一个匹配的元素标签会被定位到(该方法主要用于匹配多个页面元素)
代码显示:
元素定位法:driver.findElement(By.tagName("a")).click();
5、第五种,使用class名称定位
代码显示:
元素定位法:driver.findElement(By.className("navbar-brand")).click();
6、第六种 使用XPath元素定位法
使用XPath的绝对路径来定位元素,绝对定位是从整个页面的顶层开始查找(缺点:只要页面有一个节点发生变化,那么就会定位失败,不建议使用)
代码显示:
元素定位法:driver.findElement(By.xpath("/html/body/nav/div/div/span")).click();
使用xpath的相对路径来定位元素,相对路径只要本身的标签性质没有改变,就不会因为页面变化而改变
一个定位相对路径的小技巧(打开谷歌浏览器,F12,选定要定位的元素,鼠标右键-copy--copy XPath)
代码显示:
元素定位:driver.findElement(By.xpath("//*[@id='pwd']")).sendKeys("654321");
使用xpath的索引号进行元素定位(索引号针对的索引是同一个div下的,下图的input是在两个div中的,所以没有input[2];索引号排序从1开始)
代码显示:
元素定位:driver.findElement(By.xpath("//input[1]")).sendKeys("123456");
使用页面元素属性的属性值定位元素实例(通俗点说就是当同一个页面有元素很多属性相同时,可以使用这种方法)
代码显示:
元素定位:driver.findElement(By.xpath("//input[@type='password' and @name='passwd']")).sendKeys("123456");
7、第七种 使用CSS元素定位法(css定位相比于xpath,定位速度更快,方式更稳定,但是Xpath的定位功能相对来说更强大一些)
代码显示:
使用绝对定位方式CSS:
元素定位:driver.findElement(By.cssSelector("html>body>nav>div>div>div>a")).click();
使用相对路径定位CSS
元素定位:driver.findElement(By.cssSelector("a[id='index-html-logo-a']")).click();
使用class名称定位
元素定位: driver.findElement(By.cssSelector("a.navbar-brand")).click();
使用ID属性值定位
元素定位:driver.findElement(By.cssSelector("a#index-html-logo-a")).click();