Selenium 驱动配置 和 元素定位

news/2024/11/9 4:59:42/

目录

驱动配置

元素定位

By类普通参数方法

CSS选择器参数方法

By类xpath参数方法


驱动配置

                                                  

//新建chrome浏览器驱动配置
ChromeOptions options = new ChromeOptions();//添加参数,允许远程访问
options.addArguments("--remote-allow-origins=*");//新建WebDriver浏览器驱动
WebDriver driver = new ChromeDriver(options);

元素定位

                                                  

Webdriver提供了三类定位元素的方法,包括:

  • By类常用方法
  • CSS选择器方法
  • By类xpath方法

不管用哪种方式,必须保证页面上该属性的唯一性。


所有的定位方法都是 findElement() 方法,只是参数不同。

除 findElement() 方法外,还有 findElements() 方法。前者返回单个元素,后者返回元素集合。


By类普通参数方法

                                                  

方法描述参数
findElement(By.id("属性值"))通过元素的 id 属性值来定位元素对应的id属性值
findElement(By.name("属性值"))通过元素的 name 属性值来定位元素对应的name值
findElement(By.className("类名"))通过元素的 class 名来定位元素对应的class类名
findElement(By.tagName("标签名"))通过元素的 tag 标签名来定位元素对应的标签名
findElement(By.linkText("文本"))通过元素标签对之间的文本信息来定位元素文本内容
findElement(By.partialLinkText("部分文本"))通过元素标签对之间的部分文本信息来定位元素部分文本内容

CSS选择器参数方法

                                                  

  • id选择器:findElement(By.cssSelector("#kw")

  • name定位:findElement(By.cssSelector("[name=wd]")

  • class选择器:findElement(By.cssSelector(".s_ipt")

  • 标签选择器:findElement(By.cssSelector("div")


使用CSS选择器作为参数时,可以根据CSS的层级定位进行输入,如:

        findElement(By.cssSelector("html > body > form > span > input"))

        findElement(By.cssSelector("span.soutu-btn> input#kw"))


By类xpath参数方法

                                                  

xpath 常用符号、格式和方法
符号说明
*通配符
/绝对路径
//相对路径
[下标]索引,从1开始
标签名[@属性名=‘属性值’]属性值表示格式
[text()='文本']文本定位
[contains(text(),'部分文本')]部分文本定位

部分定位方法示例:

  • id定位:findElement(By.xpath("//*[@id='kw']"))

  • name定位:findElement(By.xpath("//*[@name='wd']"))

  • class属性定位:findElement(By.xpath("//input[@class='s_ipt']"))

  • 定位绝对路径:findElement(By.xpath("/html/body/form/span/input"))

  • 定位相对路径:findElement(By.xpath("//form[@id='form']/span/input"))

  • 索引定位:findElement(By.xpath("/form/span[1]/input"))

  • 组合属性定位:findElement(By.xpath("//input[@id='kw' and @name='wd']"))

  • 文本定位:findElement(By.xpath("//span[text()='文本']"))

  • 部分文本定位:findElement(By.xpath("//span[contains(text(),'部分文本')]"))



http://www.ppmy.cn/news/1394603.html

相关文章

CASIA数据集转png HWDB2.0-2.2

https://nlpr.ia.ac.cn/databases/handwriting/Home.html CASIA在线和离线中文手写数据库 https://nlpr.ia.ac.cn/databases/handwriting/Offline_database.html CASIA-HWDB2.0-2.2 离线文本数据库是由孤立字符数据集的作者制作的。每人撰写了五页给定文本。由于数据丢失&a…

搭建NTP服务并读取本地时间

离线环境下使用Docker来搭建NTP服务并读取本地时间。首先,您需要在服务器上安装Docker。然后,使用Docker命令来运行NTP服务器容器。例如,可以使用以下命令来运行NTP服务器容器: docker run --namentp-server \ --restartalways \…

【计算机网络实践】Cisco Packet Tracer局域网组网(FTP服务器通过交换机连接客户端)

本文为应对计算机网络第一次实验所写的预习报告 一、实验准备 一台装有Cisco Packet Tracer的PC机,一个大学生大脑。 二、了解FTP和Cisco Packet Tracer 具体内容可在百度搜索,在物理机上用FileZilla Server实现ftp可参看我前面的文章。Cisco Packet Tr…

【C语言基础篇】字符分类函数和字符转换函数

个人主页: 倔强的石头的博客 系列专栏 :C语言指南 C语言刷题系列 待补充完善

WordPress Plugin NotificationX插件 SQL注入漏洞复现(CVE-2024-1698)

0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。 0x02 漏洞概述 WordPress plugin NotificationX是一个应用插件。2.8.2版本及之前 存在安全漏洞,该…

队列,Vector 容器(类),Map映射

1、快递分拣 蓝桥王国的每个快递都包含两个参数:1.快递单号 2.快递城市。 小李是蓝桥王国的一名快递员,每天的快递分拣让他苦不堪言。 于是他想要你帮他设计一个程序用于快递的分拣(将不同快递按城市信息分开)。 输入第一行包…

stm32使用定时器实现PWM与呼吸灯

PWM介绍 STM32F103C8T6 PWM 资源: 高级定时器( TIM1 ): 7 路 通用定时器( TIM2~TIM4 ):各 4 路 例如定时器2 PWM 输出模式: PWM 模式 1 :在 向上计数 时&#xff0…

集成学习 | 集成学习思想:Boosting

目录 一. Boosting思想1. Adaboost 算法1.1 Adaboost算法构建流程1.2 sklearn库参数说明 2. Gradient Boosting 算法2.1 Gradient Boosting算法构建流程2.2 Gradient Boosting算法的回归与分类问题2.2.1 Gradient Boosting回归算法均方差损失函数绝对误差损失函数 2.2.2 Gradie…