Selenium定位方法及代码

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


执行程序前请先配置驱动:
关于Java selenium使用前浏览器驱动的下载和环境变量的配置
关于Selenium自动化测试工具的Java实现详情请参考文章:
如何查看页面对应的Selenium定位参数
Java实现 selenium Web自动化测试(简单篇)
Java实现 selenium Web自动化测试(详细篇)


1. 定位方法

想要模拟浏览器操作就需要先定位浏览器的输入框按钮等标签位置
selenium提供了8种定位方式,这8种定位方式在Java selenium中对应八种方法

selenium定位方式 Java selenium定位方法
id findElement(By.id())
name findElement(By.name())
class name findElement(By.className())
tag name findElement(By.tagName())
link text findElement(By.linkText())
partialink text findElement(By.partialLinkText())
xpath findElement(By.xpath())
css selector findElement(By.cssSelector())

接下来就是8种定位方式和定位后的操作

2. Java代码

完整代码
LocateElementTest.java

package com.libai.test.selenium.chrome;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

/**
 * @ClassDescription: 元素定位:定位页面中的某个元素标签的位置
 * @JdkVersion: 1.8
 * @Author: 李白
 * @Created: 2024/5/8 10:16
 */
public class LocateElementTest {

    public static void main(String[] args) {
        //指定驱动,第一个参数为驱动名称,不同浏览器的参数名称不一样,请根据浏览器查询到对应的浏览器参数名,第二个参数为驱动文件路径,即驱动完整文件路径
        System.setProperty("webdriver.chrome.driver", "D:\\JavaSoftWares\\Google\\driver\\chromedriver-win64\\chromedriver.exe");
        // 谷歌驱动
        ChromeOptions cops = new ChromeOptions();
        // 允许所有请求
        cops.addArguments("--remote-allow-origins=*");
        //创建驱动对象
        WebDriver webDriver = new ChromeDriver(cops);
        // 启动需要打开的网页
        webDriver.get("https://www.baidu.com");
        //指定窗口大小--最大化
        webDriver.manage().window().maximize();

        //定位页面元素的方法=======================================================================


        //一、input标签元素定位====如我们现在有一个网页,输入框input部分的前端代码如下:
        /*
        <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
         */
        //对input标签进行定位的方法如下
        //1-通过id定位
//        webDriver.findElement(By.id("kw"));
//        //2-通过name定位
//        webDriver.findElement(By.name("wd"));
//        //3-通过class name定位
//        webDriver.findElement(By.className("s_ipt"));
//        //4-通过tag name定位----因无tag标签,暂未验证
//        webDriver.findElement(By.tagName("input"));
//        //5-通过xpath定位,该定位方法有很多种写法,常用的几种如下:
//        webDriver.findElement(By.xpath("//*[@id='kw']"));
//        webDriver.findElement(By.xpath("//*[@name='wd']"));
//        webDriver.findElement(By.xpath("//input[@class='s_ipt']"));
//        webDriver.findElement(By.xpath("//form[@id='form']/span/input"));
//        webDriver.findElement(By.xpath("//input[@id='kw' and @name='wd']"));
//        //6-通过css定位,同样有很多种方法,如下为几种常用方法:
//        webDriver.findElement(By.cssSelector("#kw"));
//        webDriver.findElement(By.cssSelector("[name=wd]"));
//        webDriver.findElement(By.cssSelector(".s_ipt"));
//        webDriver.findElement(By.cssSelector("form#form > span > input"));

        //二、网页的文本链接元素定位=====如百度首页的文本链接代码如下
        /*
            <a href="http://news.baidu.com" target="_blank" class="mnav c-font-normal c-color-t">新闻</a>
            <a href="https://www.hao123.com?src=from_pc_logon" target="_blank" class="mnav c-font-normal c-color-t">hao123</a>
         */
        //对文本链接进行定位的方法如下
        //7-通过link text定位,定位后使用click函数点击跳转到新闻页面
//        webDriver.findElement(By.linkText("新闻")).click();
//        webDriver.findElement(By.linkText("hao123")).click();

        //8-通过partialLink text定位
//        webDriver.findElement(By.partialLinkText("新闻"));
//        webDriver.findElement(By.partialLinkText("hao"));
//        webDriver.findElement(By.partialLinkText("hao123"));


        //注意:以下两种定位方式的测试不能同时执行,执行一个需要将另一个注释掉

        //通过定位找到input输入框的位置,并使用sendKeys进行文本内容填充到输入框
//        webDriver.findElement(By.id("kw")).sendKeys("李白");

        //通过定位找到新闻文本链接的位置,并使用click进行跳转到新闻页面,暂时无法解决关闭这个新开的新闻网页
        webDriver.findElement(By.linkText("新闻")).click();
        //等待5秒
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        //关闭资源(关闭浏览器)
        webDriver.close();
    }
}


感谢阅读,祝君暴富!

相关推荐

  1. Selenium定位方法代码

    2024-05-11 19:24:04       37 阅读
  2. Selenium WebDriver提供By.CSS_SELECTOR定位元素方法

    2024-05-11 19:24:04       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 19:24:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 19:24:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 19:24:04       82 阅读
  4. Python语言-面向对象

    2024-05-11 19:24:04       91 阅读

热门阅读

  1. Activity7框架使用学习记录

    2024-05-11 19:24:04       27 阅读
  2. 11.Netty简单认识

    2024-05-11 19:24:04       37 阅读
  3. Unity 单例模式

    2024-05-11 19:24:04       33 阅读
  4. Centos安装 docker和docker-compose

    2024-05-11 19:24:04       32 阅读
  5. 机器学习_如何给客户做聚类K-Means

    2024-05-11 19:24:04       33 阅读
  6. SSL/TLS 协议

    2024-05-11 19:24:04       28 阅读
  7. thinkphp5.1 模型auto

    2024-05-11 19:24:04       25 阅读
  8. UnityDOTS备忘

    2024-05-11 19:24:04       26 阅读
  9. QT day2

    QT day2

    2024-05-11 19:24:04      26 阅读
  10. Qt宏和关键字

    2024-05-11 19:24:04       31 阅读