• Selenium+Java(三)Selenium元素定位


    前言

    使用Selenium做元素定位的时候,需要用到HTML的知识,所以最好是能懂得HTML的基本知识。

    一、页面元素的查看(以百度为例)

    打开IE浏览器,点击F12进入开发者模式,点击图中红圈圈中的小箭头后单击需要查看的元素(如百度输入框),在DOM Explorer中就会把代码定位过去。

     二、元素的定位

    1、根据元素id进行定位

    //引用IE浏览器驱动
    System.setProperty("webdriver.ie.driver","./src/driver/IEDriverServer.exe");
    //创建IE浏览器对象
    InternetExplorerDriver driver = new InternetExplorerDriver();
    //浏览器最大化
    driver.manage().window().maximize();
    //等待浏览器加载完毕
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    //打开网站
    driver.get("https://www.baidu.com/");
    //根据id进行元素定位
    driver.findElement(By.id("kw")).sendKeys("大风北吹真帅");

    2、根据元素name进行定位

    //引用IE浏览器驱动
    System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
    //创建IE浏览器对象
    InternetExplorerDriver driver = new InternetExplorerDriver();
    //浏览器最大化
    driver.manage().window().maximize();
    //等待浏览器加载完毕
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    //打开网站
    driver.get("https://www.baidu.com/");
    //根据name进行元素定位
    driver.findElement(By.name("wd")).sendKeys("大风北吹真帅");

    3、根据元素class进行定位

    //引用IE浏览器驱动
    System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
    //创建IE浏览器对象
    InternetExplorerDriver driver = new InternetExplorerDriver();
    //浏览器最大化
    driver.manage().window().maximize();
    //等待浏览器加载完毕
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    //打开网站
    driver.get("https://www.baidu.com/");
    //根据class进行元素定位
    driver.findElement(By.className("s_ipt")).sendKeys("大风北吹真帅");

    4、根据元素文本进行定位

    //引用IE浏览器驱动
    System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
    //创建IE浏览器对象
    InternetExplorerDriver driver = new InternetExplorerDriver();
    //浏览器最大化
    driver.manage().window().maximize();
    //等待浏览器加载完毕
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    //打开网站
    driver.get("https://www.baidu.com/");
    //根据id进行元素定位
    driver.findElement(By.linkText("新闻"));

    5、根据元素部分文本进行定位

    //引用IE浏览器驱动
    System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
    //创建IE浏览器对象
    InternetExplorerDriver driver = new InternetExplorerDriver();
    //浏览器最大化
    driver.manage().window().maximize();
    //等待浏览器加载完毕
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    //打开网站
    driver.get("https://www.baidu.com/");
    //根据部分文本进行元素定位
    driver.findElement(By.partialLinkText("更多"));

    6、根据元素tag进行定位

    tag定位往往用来定义一类标签,如果页面中有多个相同的标签的元素,使用此方法进行定位就不太实用,不推荐使用此方法。

    //引用IE浏览器驱动
    System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
    //创建IE浏览器对象
    InternetExplorerDriver driver = new InternetExplorerDriver();
    //浏览器最大化
    driver.manage().window().maximize();
    //等待浏览器加载完毕
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    //打开网站
    driver.get("https://www.baidu.com/");
    //根据tag进行元素定位
    driver.findElement(By.tagName("a"));

     还有Xpath定位,此定位方式功能强大,会在下一篇博客进行介绍。

  • 相关阅读:
    JVM的生命周期、体系结构、内存管理和垃圾回收机制
    JVM的ClassLoader过程分析
    MySQL Cluster配置概述
    tomcat下bin文件夹下shell文件分析
    Eclipse环境下使用Maven注意事项
    mysql服务器的字符集
    判断文件中是否存在中文字符
    Tomcat/JSP中文编码配置
    Java内存泄露的原因
    Python 开发轻量级爬虫08
  • 原文地址:https://www.cnblogs.com/yogouo/p/11949093.html
Copyright © 2020-2023  润新知