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

Selenium->定位页面元素

时间:2014-11-18 17:51:07      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   ar   os   sp   for   div   

注意:selenium-webdriver通过findElement() findElements()等find方法调用"By"对象来定位和查询元素。

By类只是提供查询的方式进行分类。

findElement返回一个元素对象否则抛出异常,

findElements返回符合条件的元素List,如果不存在符合条件的就返回一个空的list。

一、定位单个元素

<input id="kw" name="wd" class="s_ipt" value="" maxlength="100" autocomplete="off">

(1)element.findElement(By.className(name));

根据class名定位元素

WebElement element=driver.findElement(By.className("s_ipt"));
    
System.out.print(element.getTagName());
   

输出结果是:

input

(2)element.findElement(By.id(name));

根据id名定位元素

WebElement element=driver.findElement(By.id("kw"));
    
System.out.print(element.getTagName());

输出结果:

input

(3)element.findElement(By.name(name));

根据name名定位元素

getAttribute()获取指定属性的值

WebElement element=driver.findElement(By.name("wd"));
    
System.out.print(element.getAttribute("id"));

输出结果:

kw

(4)element.findElement(By.linkText(name));

(5)element.findElement(By.partialLinkText(name));

(6)element.findElement(By.tagName(name));

(7)element.findElement(By.xpath(name));

(8)element.findElement(By.cssSelector(name));

 


 

二、定位多个元素

通过i标签名为input,获取到一个元素列表;

循环这个列表,输出属性为name的值。

public static void main(String[] args) {
        
    String url = "http://www.51cto.com";
    
    WebDriver driver = new FirefoxDriver();
     
    driver.navigate().to(url);

    List<WebElement> elements = driver.findElements(By.tagName("input"));
    
    for ( WebElement e : elements )
    {
         System.out.print(e.getAttribute("name")+"\n");
    }

    }

输出结果:

checkemail
checkarea
step
username
email
emailexist
usernameexist
yanzhengexsit
userpwd
password2
gzly
gzly_other
sshy
sshy_other
zw
zw_other
code
agree
agree

 

 


 

 

三、层级定位

层级定位的思想是先定位父元素,然后再从父元素中精确定位出其我们需要选取的子元素。
层级定位一般的应用场景是无法直接定位到需要选取的元素,但是其父元素比较容易定位,通过定位父元素再
遍历其子元素选择需要的目标元素,或者需要定位某个元素下所有的子元素。

    public static void main(String[] args) {
        
    String url = "http://ucenter.51cto.com/reg_01.php";
    
    WebDriver driver = new FirefoxDriver();
     
    driver.navigate().to(url);
    
    //通过标签名为form先定位父元素
    WebElement el = driver.findElement(By.tagName("form"));
    
    //在父元素里定位到子元素
    List<WebElement> elements =el.findElements(By.tagName("input"));
    
    for ( WebElement e : elements)
    {
         System.out.print(e.getAttribute("name")+"\n");
    }

    }
}

 

Selenium->定位页面元素

标签:style   blog   http   color   ar   os   sp   for   div   

原文地址:http://www.cnblogs.com/LoveTest/p/4106220.html

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