selenium-java之元素定位

本文介绍了使用Selenium WebDriver进行Web元素定位的方法,包括findElement和findElements API,以及By类中的八大定位策略:id、name、tagName、className、linkText、partialLinkText、cssSelector和xpath。通过具体代码示例展示了如何使用这些策略,如By.id、By.name、By.className等,同时详细解释了cssSelector和xpath的多种用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Webdriver的两个Api:

findElement(By by):以给定的方式查找第一个元素

findElements(By by):以给定的方式查找符合条件的元素列表

By类种八大定位策略:id,name,tagname,classname,linkText,partialinkText,cssSelector,xpath(静态方法,类型都为String)

 

1,id:By.id(String id)

html中的id是唯一标识一个元素,一个元素的id在一个网页中是唯一的

定位代码:

WebElement input = driver.findElement(By.id("kw"));

2,name:By.name(String name)

用于提交到服务器后 的表单数据进行标识,只有设置了name属性的表单元素才能用于提交表单时传递数据

定位代码:

WebElement input1 = driver.findElement(By.name("wd"));

3,By.tagname:数据标签名 

WebElement input1 = driver.findElement(By.tagname("input")); 

4,By.className(String className) 样式名

classname 是指标签的class属性中的值

 WebElement input1 = driver.findElement(By.className("s_ipt")); 

5,by.linktext 超链接

WebElement input1 = driver.findElement(By.linktext("新闻")); 

6,By.partialinkText部分超链接文本

WebElement inputnew = driver.findElement(By.partialLinkText("新"));

7,By.cssSelector样式选择器

7.1.1 通过id方式

格式:By.cssSelector("标签名#id");

By.cssSelector("input#kw");

7.1.2通过classname样式名

格式:By.cssSelector(".classname");

By.cssSelector(".s_ipt");

7.1.3通过元素属性定位

语法:By.cssSelector("标签名"[属性名1='属性值'][属性名2='属性值']")

By.cssSelector("input[value='255']");

8,By.xpath (String xpath)

xpath是基于xml文档树状结构,是xml路径语言

8.1.1 根据绝对路径

可以通过浏览器右击标签->copy-copy xpath

8.1.2与属性结合

By.xpath("//*[@id="kw"]")

* 任意元素节点

[]判断的表达式

@选取属性

id="xx"选取的 属性和值的表达式

8.1.3相对路径

By.xpath("//form[1]/span[1]/input")

8.1.4逻辑(and、or)

By.xpath("//input[@class='s_ipt' and @length='255']")

 

 

### 关于 Selenium-Java 的介绍和用途 #### 什么是 Selenium-JavaSelenium-JavaSelenium WebDriver 的 Java 绑定,允许开发者利用 Java 编程语言来编写自动化脚本[^1]。此工具主要用于 Web 应用程序的功能测试,能够模拟真实用户的浏览器操作行为。 #### 如何定义 Maven 中的依赖关系? 为了在项目中引入 Selenium-Java,在项目的 `pom.xml` 文件内需添加如下依赖项: ```xml <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> ``` 上述 XML 片段指定了要使用的具体版本号以及库的位置信息,从而确保可以从远程仓库正确获取所需的 JAR 包。 #### 使用场景与优势 借助 Selenium-Java 可实现多种复杂的网页交互逻辑,比如表单提交、链接点击等动作;支持跨平台运行(Windows, Mac OS X 和 Linux),并且兼容主流浏览器如 Chrome、Firefox 等;另外还提供了丰富的 API 接口供调用者灵活运用,极大地提高了开发效率并降低了维护成本[^2]。 #### 实际应用案例展示 下面给出一段简单的 Python 代码作为参考,虽然提问涉及的是 Java 方面的内容,但是这里提供 Python 示例以便更直观地理解如何使用 Selenium 进行基本页面元素定位及事件触发的操作[^3]: ```python from selenium import webdriver browser = webdriver.Firefox() try: browser.get('http://www.baidu.com') input_box = browser.find_element_by_id('kw') submit_button = browser.find_element_by_id('su') input_box.send_keys('selenium') submit_button.click() finally: browser.quit() ``` 这段代码展示了怎样启动 Firefox 浏览器实例化对象,加载百度首页,查找输入框和按钮控件,并执行关键词搜索的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值