Selenium-元素的定位

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();
	}
}

6:table定位方式


猜你喜欢

转载自blog.csdn.net/hujyhfwfh2/article/details/80949678