码迷,mamicode.com
首页 > 其他好文 > 详细

TestNG(四)查找元素

时间:2018-04-15 21:52:16      阅读:608      评论:0      收藏:0      [点我收藏+]

标签:标签   sys   tor   定义   imp   tps   直接   查找   css   

重点:

一、八种方法查找元素

1、ID 一般是唯一的(By.id)

WebElement keyfind = driver.findElement(By.id("kw"));

2、name 使用是要确定当前打开页面是否是唯一的,如果不是,那么就会找打多个,无法进行操作。(By.name)

如何确定是否唯一?审查元素:Ctrl+F

3、链接文本

注意:只适应于a表标签

4、部分链接文本

注意:只适应于a表标签 

5、通过tagname查找元素,很少用到。

6、xpath查找(By.xparh(xpath路径))

7、CSS选取

原则:有ID用ID,但是ID可能是随机数。没有ID用name,如果name有重复,那么就用xpath。

二、findElement与findElements 的区别

从字面上理解,findElement查找到一个元素,findElements查找到多个元素,并且都有返回值。

findElement 定义:WebElement findElement(By var1);

findElements定义:List<WebElement> findElements(By var1);

注意:使用findElement 当定位到多个的时候,findElement  只输出第一个。

 @Test
public void findXparh02 (){
driver.get("https://www.baidu.com");
List<WebElement> list = driver.findElements(By.xpath("/html/body/div[1]/div[1]/div/div[3]/a[1]"));
// for (int i= 0; i<list.size() ; i++) {
//读取文本
String text = list.get(0).getText();
//输出文本
System.out.println(text);

}

三、常见错误

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"class name","selector":"mine-text"}

这种错误一般是元素值错误,重新看下元素定位的值是不是正确。

 

一 、利用ID查找元素

package test02;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class TestFindElements {
WebDriver driver;
@BeforeMethod
public void browesOpen(){
System.setProperty("Webdriver.chrome.driver","F:\\工程文件\\drivers\\MicrosoftWebDriver.exe");
driver = new ChromeDriver();
}
@Test
public void findElements(){
driver.get("https://www.baidu.com");
WebElement keyfind = driver.findElement(By.id("kw"));
}
@AfterMethod
public void browesclose(){
driver.quit();
}



}

二、name查找元素
例2

@Test
public void findNameElements() {
driver.get("https://www.baidu.com");
WebElement keyfind = driver.findElement(By.name("wd"));
}


六、xpath获取元素
谷歌和火狐浏览器,先抓取你要的元素,然后右键copy-->copy xpath ;直接在代码中粘贴就可以了。
@Test
public void findxpath (){
driver.get("https://www.baidu.com");
WebElement keyfind = driver.findElement(By.xpath("//*[@id=\"su\"]"));

七、通过CSS查找
谷歌浏览器,先抓取你要的元素,然后右键copy-->copy selector ;直接在代码中粘贴就可以了。
火狐浏览器,先抓取你要的元素,然后右键copy-->CSS选择器;直接在代码中粘贴就可以了。
@Test
public void findCSS (){
driver.get("https://www.baidu.com");
WebElement keyfind = driver.findElement(By.cssSelector("#su"));
}


















TestNG(四)查找元素

标签:标签   sys   tor   定义   imp   tps   直接   查找   css   

原文地址:https://www.cnblogs.com/Daisyjm/p/8849503.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!