1: id,className ,name的定位
baidu的输入框用firefox抓取id=kw,class=s_ipt, name=wd;
PS:className只用取第一个value
1.1:准备工作:
libs下面的jar和selenium的jar包需要导入esclipse
1.2 id的定位:
public void testDemo(){ driver = new FirefoxDriver(); driver.get("https://www.baidu.com/"); //id方式定位 WebElement element = driver.findElement(By.id("kw")); element.sendKeys("selenium"); } |
1.3:class的定位:
@Test public void testDemo(){ driver = new FirefoxDriver(); driver.get("https://www.baidu.com/"); //className方式定位 WebElement element = driver.findElement(By.className("s_ipt")); element.sendKeys("selenium-class"); } |
1.4:name定位:
@Test public void testDemo(){ driver = new FirefoxDriver(); driver.get("https://www.baidu.com/"); //name方式定位 WebElement element = driver.findElement(By.name("wd")); element.sendKeys("selenium-name"); } |
2:TagName定位:
2.1 TagNmae定位的方式:
如下图 tagName定位的是“<”尖括号的标签 所有理论上所有的标签都可以被定位 只是无法保证标签的唯一性。
2.2:tagName定位:
@Test public void testDemo(){ driver = new FirefoxDriver(); driver.get("https://www.baidu.com/"); // input标签不止有一个 所以应该是抓取element的集合 // WebElement element = driver.findElement(By.tagName("input")); List<WebElement> element = driver.findElements(By.tagName("input")); //打印输出List集合的长度 System.out.println(element.size()); } |
3:linkText与partialLinkText定位
如下图 可以定位text
3.1:linkText与partiaLinkText的定位方式与区别
@Test
public void testDemo(){
driver = new FirefoxDriver();
driver.get("https://www.baidu.com/");
// linkText是完全比配
// WebElement element = driver.findElement(By.linkText("新闻"));
// partialLinkText为模糊匹配
WebElement element = driver.findElement(By.partialLinkText("hao"));
element.click();
}
4:xpath的方式定位:
4.1:xpath工具
1:firefox可以安装firebug和firepath插件来定位元素的xpath
4.2:xpath定位
public class testDemos {
private WebDriver driver;
@Test
public void testDemo(){
driver = new FirefoxDriver();
driver.get("https://www.baidu.com/");
// Xpath定位为html层级定位
WebElement element = driver.findElement(By.xpath(".//*[@id='kw']"));
element.sendKeys("xpath定位");
}
}
5:cssSelector方式定位元素
5.1:工具的使用
5.2:代码演示
public class testDemos {
private WebDriver driver;
@Test
public void testDemo(){
driver = new FirefoxDriver();
driver.get("https://www.baidu.com/");
// 定位到baidu"新闻"的css
WebElement element = driver.findElement(By.cssSelector(".mnav"));
element.click();
}
}