Java-002 selenium元素定位

1.selenium定位方法

Selenium提供了8种定位方式:
id
name
class name
tag name
link text
partial link text
xpath
css selector

这8种定位方式在Java selenium中所对应的方法为:
findElement(By.id())
findElement(By.name())
findElement(By.className())
findElement(By.tagName())
findElement(By.linkText())
findElement(By.partialLinkText())
findElement(By.xpath())
findElement(By.cssSelector())

2.xpath定位的常用写

xpath定位有N种写法,这里列几个常用写法:

driver.findElement(By.xpath("//*[@id='kw']"))
driver.findElement(By.xpath("//*[@name='wd']"))
driver.findElement(By.xpath("//input[@class='s_ipt']"))
driver.findElement(By.xpath("/html/body/form/span/input"))
driver.findElement(By.xpath("//span[@class='soutu-btn']/input"))
driver.findElement(By.xpath("//form[@id='form']/span/input"))
driver.findElement(By.xpath("//input[@id='kw' and @name='wd']"))

3.实战中可以将WebDriver初始化、登录功能、页面功能定义成不同的class类,将代码进行解耦

package it.itms;

import org.openqa.selenium.By;

public class Login {

	public void firstLogin() throws Exception {

		try {
			Init.driver.get(Init.url);
			Thread.sleep(3000);
			Init.driver.findElement(By.id("acc_yhm")).sendKeys(Init.loginname);

			Init.driver.findElement(By.name("acc_mm")).sendKeys(Init.passwd);
			// 获取验证码信息,先获取验证码的标签,再获取标签的文本
			String code = Init.driver.findElement(By.id("code")).getText();
			Thread.sleep(3000);
			Init.driver.findElement(By.name("checkCode")).sendKeys(code);
			Init.driver.findElement(By.id("Submit")).click();
			// Thread.sleep(6000);
			String title = Init.driver.getTitle();
			System.out.println(title);
			if (!title.equals("当前页面的title")) {
				System.out.println("未进入登录界面");
			}
		} catch (Exception e) {
			System.out.println("页面无法打开");
			Init.driver.quit();
		}

	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Selenium中,可以使用findElement()和findElements()方法来定位元素。这些方法接受一个By对象作为参数,用于指定定位元素的策略。常用的定位策略包括: 1. 通过id属性定位元素:driver.findElement(By.id("id值"))和driver.findElements(By.id("id值")) 2. 通过name属性定位元素:driver.findElement(By.name("name值"))和driver.findElements(By.name("name值")) 3. 通过class属性定位元素:driver.findElement(By.className("class值"))和driver.findElements(By.className("class值")) 4. 通过HTML标签名定位元素:driver.findElement(By.tagName("标签名"))和driver.findElements(By.tagName("标签名")) 5. 通过链接内容定位元素:driver.findElement(By.linkText("链接文本"))和driver.findElements(By.linkText("链接文本")) 6. 通过部分链接内容定位元素:driver.findElement(By.partialLinkText("部分链接文本"))和driver.findElements(By.partialLinkText("部分链接文本")) 7. 通过css选择器定位元素:driver.findElement(By.cssSelector("css选择器"))和driver.findElements(By.cssSelector("css选择器")) 8. 通过xpath定位元素:driver.findElement(By.xpath("xpath表达式"))和driver.findElements(By.xpath("xpath表达式")) 示例代码如下: ```java WebElement element = driver.findElement(By.id("elementId")); List<WebElement> elements = driver.findElements(By.className("elementClass")); ``` 请注意,如果findElement()或findElements()方法找不到相应的元素,它们会抛出NoSuchElementException异常。 #### 引用[.reference_title] - *1* *2* *3* [Selenium Java元素定位](https://blog.csdn.net/dcm1324659876/article/details/115876615)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值