Java Selenium学习笔记(一):WebDriver元素定位

WebDriver提供了八种元素定位的方式:

  • id
  • name
  • className
  • tagName
  • linkText
  • partialLinkText
  • xpath
  • cssSelector

为了更好的学子这8种元素定位的方式,下面我将使用注册页面来练习自动化脚本的设计

  • 语言使用Java
  • 开发工具使用eclipse Mars.2
  • selenium使用2.48.0
  • 浏览器使用Firefox35.0

1.id定位

id定位就是通过元素的id属性来定位元素。

id定位页面元素方法如下:

driver.findElement(By.id("id的值"));

案例需求:

  • 打开注册A.html页面,使用id定位,自动填写账号A、密码A(账号A:admin、密码A:123456)
  • 填写完毕后,3秒钟后关闭浏览器窗口

"注册用户A"页面如下图所示,

"账号A"文本框的HTML示例代码如下,它的id为userA

<input id="userA" type="textA" value="" required="" placeholder="账号A" name="userA"/>

"密码A"文本框的HTML示例代码如下,它的id为passwordA

<input id="passwordA" type="password" value="" placeholder="密码A" name="passwordA"/>

通过id定位元素的Java代码如下:

package com.hxs.day01;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class FindElementById {

    public static void main(String[] args) throws InterruptedException {
    
        // 指定Firefox安装路径
	System.setProperty("webdriver.firefox.bin", "F:\\Program Files (x86)\\Mozilla Firefox35\\firefox.exe");
        
        // 实例化火狐浏览器
	WebDriver driver = new FirefoxDriver();

	// 打开注册A.html
	String url = "D:\\develop\\软件测试\\web自动化练习\\day02\\注册A.html";
	driver.get(url);

	// 找到用户文本框-定位元素
	WebElement user = driver.findElement(By.id("userA"));
	// 给文本框传值
	user.sendKeys("admin");

	WebElement pwd = driver.findElement(By.id("passwordA"));
	pwd.sendKeys("123456");

	// 等待3秒,强制等待
	Thread.sleep(3000);

	// 关闭浏览器
	driver.quit();
    }
}

2.name定位

name定位就是根据元素的name属性来定位。

name定位页面元素的方法如下:

driver.findElement(By.name("name的值"));

案例需求:

  • 打开注册A.html页面,使用name定位,自动填写账号A、密码A(账号A:admin、密码A:123456)
  • 填写完毕后,3秒钟后关闭浏览器窗口

"账号A"文本框的HTML示例代码如下,它的name为userA

<input id="userA" type="textA" value="" required="" placeholder="账号A" name="userA"/>

"密码A"文本框的HTML示例代码如下,它的name为passwordA

<input id="passwordA" type="password" value="" placeholder="密码A" name="passwordA"/>

通过name定位元素的Java示例代码如下:

// 打开注册A.html页面
String url = "D:\\develop\\软件测试\\web自动化练习\\day02\\注册A.html";
driver.get(url);
		
// 定位元素,并给文本框传值
driver.findElement(By.name("userA")).sendKeys("admin");
driver.findElement(By.name("passwordA")).sendKeys("123456");

3.className定位

class属性定位页面元素的方法如下:

driver.findElement(By.className("class属性"));

案例需求:

  • 打开注册A.html页面,通过className定位电话号码A,并发送18611111111 

"电话号码A"文本框的HTML示例代码如下,它的class属性为telA

<input id="telA" class="telA" type="telA" value="" placeholder="电话A" name="telA"/>

通过class属性定位页面元素的Java示例代码如下:

// 定位元素,并给文本框传值
driver.findElement(By.className("telA")).sendKeys("18611111111 ");

4.tagName定位

tagName定位就是使用标签名进行定位。HTML本质就是由不同的tag(标签)组成,而每个tag都是指同一类,所以tag定位效率低,一般不建议使用。

tagName定位页面元素的方法如下:

driver.findElement(By.tagName("标签名称"));
driver.findElements(By.tagName("标签名称")).get(索引);

案例需求1:

  • 打开注册A.html页面,通过tagName定位,自动填写(账号A:admin)
  • 填写完毕后,3秒钟后关闭浏览器窗口

"账号A"文本框的HTML示例代码如下,

<input id="userA" type="textA" value="" required="" placeholder="账号A" name="userA"/>
通过tagName定位页面元素的Java示例代码如下:
 
driver.findElement(By.tagName("input")).sendKeys("admin");

案例需求2:

  • 打开注册A.html页面,通过tagName定位,获取"电子邮件A"文本框,自动填写allan@qq.com
  • 填写完毕后,3秒钟后关闭浏览器窗口

通过tagName定位页面元素的Java示例代码如下:

driver.findElements(By.tagName("input")).get(3).sendKeys("allan@qq.com");;

5.linkText定位

linkText专门用来定位超链接文本(<a>标签</a>),定位链接的全部文字。

linkText定位页面元素的方法如下:

driver.findElement(By.linkText("链接的全部文字"));

案例需求:

  • 打开注册A.html页面,使用linkText定位(访问 新浪 网站)超链接
  • 3秒钟关闭浏览器窗口

直接通过超链接上的文字信息来定位元素,HTML代码如下,

<a id="fwA" href="http://www.sina.com.cn">访问 新浪 网站</a>

通过linkText定位页面元素的Java示例代码如下:

driver.findElement(By.linkText("访问 新浪 网站")).click();
		
// 等待3秒,强制等待
Thread.sleep(3000);

// 关闭浏览器
driver.quit();

6.partialLinkText定位

partialLinkText定位链接的部分文字。

partialLinkText定位页面元素的方法如下:

driver.findElement(By.partialLinkText("链接的部分文字"));

案例需求:

  • 打开注册A.html页面,使用partialLinkText定位(访问 新浪 网站)超链接
  • 3秒钟关闭浏览器窗口

直接通过超链接上的文字信息来定位元素,HTML代码如下,

<a id="fwA" href="http://www.sina.com.cn">访问 新浪 网站</a>

通过partialLinkText定位页面元素的Java示例代码如下:

driver.findElement(By.partialLinkText("访问")).click();
		
// 等待3秒,强制等待
Thread.sleep(3000);
		
// 关闭浏览器
driver.quit();

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蝌蚪找玛玛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值