java+selenium——查找定位元素,elements复数定位(driver.findElementsByClassName("mnav");)001

WebElement类可支持查询子类元素。假设页面上有一些重复的元素,它们有不同的父元素。我们可以先定位其父元素,然后定位其子元素,方法如下:

WebElement father = driver.findElement(By.id("father"));
WebElement son = father.findElement(By.linkText("xxx"));

也可以将他们缩写成一行:

1 WebElement son = driver.findElement(By.id("father")).findElement(BylinkText("xxx"));

 NoSuchElementFoundException

findElement()和findElements()方法找不到相应的元素时,会抛出该异常。

=========================================================================

package rjcs;

import java.util.List;

import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.testng.annotations.Test;

import com.thoughtworks.selenium.SeleneseTestNgHelper;

public class findby 
{
    
    public static void main(String[] args)
    
    {
         System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");    //设置火狐的安装路径,防止系统找不到
            
         FirefoxDriver driver = new FirefoxDriver();        //初始化FireFox浏览器实例,并打开浏览器
         
        try
        {
             driver.manage().window().maximize();         //最大化窗口
             
             Thread.sleep(5000);        
             
             driver.manage().window().maximize();         //最大化窗口
             
             Thread.sleep(5000);
        
             driver.get("https://www.baidu.com");                    //打开一个网址,方法一             
        
             Thread.sleep(5000);
             
             
             
             List<WebElement> myList = driver.findElementsByClassName("mnav");    //获取class的所有
             
             for(int i=0; i < myList.size();i++)
             {
                 System.out.print(myList.get(i).getText());        //打印连接文字
                 System.out.print("         ");
                 System.out.println( myList.get(i).getAttribute("href"));      //打印连接网址   
               }
             

             
             Thread.sleep(5000);            
             
        }catch (Exception e) 
        {
            e.printStackTrace();
        }finally 
        {
            driver.quit();
        
         }
   }    

}

执行结果:

新闻          http://news.baidu.com/
hao123     https://www.hao123.com/
地图          http://map.baidu.com/
视频          http://v.baidu.com/
贴吧          http://tieba.baidu.com/
学术         http://xueshu.baidu.com/

猜你喜欢

转载自www.cnblogs.com/xiaobaibailongma/p/12214363.html
今日推荐