Selenium 3+Java自动化-八种元素定位

Posted 上海-玉面小飞龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium 3+Java自动化-八种元素定位相关的知识,希望对你有一定的参考价值。

 1 package com.mypro.jase;
 2 
 3 import org.openqa.selenium.By;
 4 import org.openqa.selenium.WebDriver;
 5 import org.openqa.selenium.WebElement;
 6 
 7 public class FindElement {
 8     WebDriver driver;
 9     String url = "http://www.baidu.com";
10     
11     /**
12      * 定位元素1:findElement(By.id())
13      */
14     public void findById() {
15         driver.get(url);
16         //通过id定位百度搜索输入框,并输入“seleNium”
17         WebElement element = driver.findElement(By.id("kw"));
18         element.sendKeys("selenium");
19     }
20     
21     /**
22      * 元素定位2:findElement(By.name())
23      */
24     public void findByName() {
25         driver.get(url);
26         //通过name定位百度搜索输入框,并输入“java”
27         WebElement element = driver.findElement(By.name("wd"));
28         element.sendKeys("java");
29     }
30     
31     /**
32      * 元素定位3:findElement(By.className())
33      */
34     public void findByClassName() {
35         driver.get(url);
36         //通过className定位百度搜索输入框,并输入java
37         WebElement element = driver.findElement(By.className("s_ipt"));
38         element.sendKeys("java");
39     }
40     
41     /**
42      * 元素定位4:findElement(By.tagName())
43      */
44     public void findByTagName() {
45         driver.get(url);
46         //通过tagName(标签)定位百度搜索输入框,并输入“Java”
47         WebElement element = driver.findElement(By.tagName("input"));
48         element.sendKeys("Java");
49     }
50     
51     /**
52      * 元素定位5:findElement(By.linkText())
53      */
54     public void findByLinkText() {
55         driver.get(url);
56         //通过linkText(超链接)定位到hao123按钮,并点击;这个是精确查找
57         WebElement element = driver.findElement(By.linkText("http://www.hao123.com"));
58         element.click();
59     }
60     
61     /**
62      * 元素定位6:findElement(By.partialLinkText())
63      */
64     public void findPartailLinkText() {
65         driver.get(url);
66         //通过partailLinkText(超链接)定位到hao123按钮,并点击;这个是模糊查找
67         WebElement element = driver.findElement(By.partialLinkText("ao123"));
68         element.click();
69     }
70     
71     /**
72      * 元素定位7:findElement(By.xpath())
73      */
74     public void findByXpath() {
75         driver.get(url);
76         //通过XPath定位到百度输入框,并输入“XPath”
77         WebElement element = driver.findElement(By.xpath(".//*[@id=‘kw‘]"));
78         element.sendKeys("XPath");
79     }
80     
81     /**
82      * 元素定位8:findElement(By.cssSelector())
83      */
84     public void findByCssSelector() {
85         driver.get(url);
86         //通过CSS定位到百度输入框,并输入“Css_Selector”
87         WebElement element = driver.findElement(By.cssSelector("#kw"));
88         element.sendKeys("Css_Selector");
89     }
90 }

总结:

selenium的webdriver提供了八种基本的元素定位方法。

1、通过id定位:findElement(By.id());
2、通过name定位:findElement(By.name());

3、通过class定位:findElement(By.className());
4、通过tag定位:findElement(By.tagName());
5、通过link定位:findElement(By.linkText());
6、通过partialLink定位:findElement(By.partialLinkText());
7、通过xpath定位:findElement(By.xpath());
8、通过css定位:findElement(By.cssSelector());

 








以上是关于Selenium 3+Java自动化-八种元素定位的主要内容,如果未能解决你的问题,请参考以下文章

Selenium:八种元素定位方法

Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)

Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)

Selenium2+python自动化02-八种元素定位(Firebug和Firepath)

Selenium2学习-- 八种元素元素定位(Firebug和firepath)

Java + selenium 元素定位之By id/Name/ClassName