概述
在自动化测试实施过程中,测试程序中常用的页面元素操作步骤如下:
(1)定位网页上的页面元素,并存储到一个变量中。
(2)对变量中存储的页面元素对象进行操作,例如:单击连接、选择下拉列表或在输入框中输入文字符。
(3)设定页面元素的操作值。
以下介绍的方法都是使用java语言描述。
定位页面元素——使用ID定位
使用ID定位的java语句为:driver.findElement(By.id(""));
被测试网页的HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>findElementDemo</title>
</head>
<body>
<label>用户名</label>
<input id="username"></input>
<label>密码</label>
<input id="password"></input>
<br>
<button id="submit">登录</button>
</body>
</html>
定位语句代码:
WebElement username= driver.findElement(By.id("username"));
WebElement password= driver.findElement(By.id("password"));
WebElement submit= driver.findElement(By.id("submit"));
由于页面元素的ID属性在当前网页是唯一的,所以使用ID值定位可以保证定位的唯一性,不会像其他定位方式可能定位到多个元素。但是在实际的项目中,很多核心页面元素都是没有ID属性值的,导致无法使用ID进行定位。可以建议和页面开发工程师约定所有的核心页面元素均需要增加ID值,一次提高网页程序的可测试性,降低自动化测试的实施难度。
定位页面元素——使用name定位
使用ID定位的java语句为:driver.findElement(By.name(""));
被测试网页的HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>findElementDemo</title>
</head>
<body>
<label>用户名</label>
<input name="username"></input>
<label>密码</label>
<input name="password"></input>
<br>
<button name="submit">登录</button>
</body>
</html>
定位语句代码:
WebElement username= driver.findElement(By.name("username"));
WebElement password= driver.findElement(By.name("password"));
WebElement submit= driver.findElement(By.name("submit"));
页面元素的name和ID不一样,name属性在当前的页面可以不是唯一的,而ID属性值则必须是唯一的。因此使用name方式定位可能会同时定位到多个元素,还需要进一步定位才能获得实际想要的唯一页面元素。
定位页面元素——使用链接的全部文字定位
使用ID定位的java语句为:driver.findElement(By.linkText(""));
被测试网页的HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>findElementDemo</title>
</head>
<body>
<a href="http://www.baidu.com">baidu 搜索</a>
<a href="http://www.sogou.com">sogou 搜索</a>
</body>
</html>
定位语句代码:
WebElement link= driver.findElement(By.linkText("sogou 搜索"));
WebElement link= driver.findElement(By.linkText("baidu 搜索"));
使用这个方法定位链接需要完全匹配链接的显示文字,常用于页面中存在多个链接文字高度相似的情况,且无法使用部分链接文字进行定位。
定位页面元素——使用部分链接文字定位
使用ID定位的java语句为:driver.findElement(By.name(""));被测试网页的HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>findElementDemo</title>
</head>
<body>
<a href="http://www.baidu.com">baidu 搜索</a>
<a href="http://www.sogou.com">sogou 搜索</a>
</body>
</html>
定位语句代码:
WebElement link= driver.findElement(By.partialLinkText("baidu"));
List<WebElement> links=driver.findElements(By.partialLinkText("搜索"));
第一行代码是查找包含“baidu”字母的链接,如果含有多个含有“baidu”字母的链接,则会将第一个匹配的链接对象复制给link变量。
第二行代码则是查找含有“搜索”两个字的所有链接,存储到名为links的List容器中。
这种方式只需要模糊匹配链接的显示文字即可,常用于匹配页面链接文字不定期发生少量文字变化的情况。使用模糊匹配的方式可以提高链接定位的准确率,也可以用于模糊匹配一组链接的情况。
定位页面元素——使用标签名称定位
使用ID定位的java语句为:driver.findElement(By.tagName(""));
被测试网页的HTML代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>findElementDemo</title>
</head>
<body>
<a href="http://www.baidu.com">baidu 搜索</a><br/>
<a href="http://www.sogou.com">sogou 搜索</a>
</body>
</html>
定位语句代码:
WebElement searchBox = driver.findElement(By.tagName("a"));
List<WebElement> links=driver.findElements(By.tagName("a"));
第一行标识查找页面上的链接,如果有多个链接则只有第一个被匹配的链接对象会赋值给link变量。
第二行则是查找页面上所有的链接,并存储到名为links的List容器中。
这种方式主要用于匹配多个页面元素的情况,将查找到的网页元素对象进行计数、遍历、修改属性等操作。
定位页面元素——使用Class名称定位
使用ID定位的java语句为:driver.findElement(By.className(""));
被测试网页的HTML代码
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
input .spread {
FONT-SIZE: 20pt;
}
input.tight {
FONT-SIZE: 10pt;
}
</style>
</head>
<body>
<input class="spread" type=text></input>
<input class="tight" type=text></input>
</body>
</html>
定位语句代码:
WebElement input = driver.findElement(By.className("tight"));
List<WebElement> inputs=driver.findElements(By.tagName("tight"));
根据class属性值,可以查找一个或者一组显示效果相同的页面元素。第一行则会找出classname为tight的元素,如果有多个,取第一个;第二行则是找出classname为tight的元素,全部存放在名为inputs的list对象里。
最后
以上就是虚拟海燕为你收集整理的selenium页面元素定位方法(1)的全部内容,希望文章能够帮你解决selenium页面元素定位方法(1)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复