• 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/

  • 相关阅读:
    20202418 202120222 《Python程序设计》实验3报告
    人生苦短,我用python( 目录)
    列表
    python 算法补充
    Python数据类型
    数字类型及字符串
    将 CoAP 协议设备接入 EMQX Cloud
    发布在即,全新 EMQX v5.0 抢先看!
    EMQX Cloud 更新:外部认证授权
    20192417 实验五 信息搜集技术实践
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/12214363.html
Copyright © 2020-2023  润新知