Selenium2.0功能测试之Web元素的定位

简介:
页面元素的定位可以说是WebDriver中最核心的内容了,我们定位元素的目的主要有:操作元素,获取该元素的属性,获取元素的text以及获取元素的数量,WebDriver 为我们提供了以下几种方法来帮我们定位 web元素:
  通过元素的id获取
  通过元素的name获取
  通过元素的tag name 获取
  通过css xpath 获取
  通过xpath 获取
  通过class name  获取
  通过一部分的link text 获取元素
  通过全部的link text 获取元素
   唯一元素的定位:
package org.coderinfo.demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class FindSingleElements {
private static final String URL = "file:///C:/Desktop/Selenium/login.html"; // 需要更改这个URL到你自己的login.html 的文件路径
public static void main(String[] args) throws InterruptedException {
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize(); //最大化浏览器界面
driver.get(URL); //访问谷哥的首页 ,此处放弃度娘。
Thread.sleep(2000); //Wait for page load
driver.findElement(By.id("inputEmail")).sendKeys("coderinfo@163.com"); // use id to find a web element
Thread.sleep(2000);
driver.findElement(By.name("password")).sendKeys("#####");    // use name to find a web element
Thread.sleep(2000);
driver.findElement(By.cssSelector("#inputEmail")).clear();   // use css selector to find a web element
Thread.sleep(2000);
driver.findElement(By.linkText("UseLink")).click();  // use link text to find a web element
Thread.sleep(2000);
driver.findElement(By.partialLinkText("Use")).click(); // use partial link text to find a web element
Thread.sleep(2000);
String formClassName = driver.findElement(By.tagName("form")).getAttribute("class");  //use tag name to find a web element
System.out.println(formClassName);
Thread.sleep(2000);
String text = driver.findElement(By.xpath("/html/body/form/div[1]/div")).getText();  // use xpath to find a web element
System.out.println(text);
String inputText = driver.findElement(By.className("inputClass")).getAttribute("placeholder");  // use class name to find a web element
System.out.println(inputText);
Thread.sleep(5000);
driver.quit();  //彻底退出WebDriver
}
}

字体:        | 上一篇 下一篇 | 打印  | 我要投稿 

   这里是要测试的页面login.html的源码:
<!DOCTYPE html>
<html>
<head>
<title>For Selenium Test</title>
<style type="text/css">
div {
margin-top:10px
}
#inputEmail {
color:red
}
</style>
</head>
<body>
<center>
<h3>Find Single Element</h3>
</center>
<form class="form-h">
<div class="items">
<div class="item">
Use ID:<input type="text" id="inputEmail" name="email" placeholder="Email"/>
</div>
</div>
<div class="items">
<div class="item">
Use Name:<input type="password" id="inputPassword" name="password" placeholder="Password" class="inputClass"/>
</div>
</div>
<div class="items">
<div class="item">
Use Link:<a href="#">UseLink</a>
</div>
</div>
</form>
</body>
</html>
   一组元素的定位 :
package org.coderinfo.demo;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class FindElements {
private static final String URL = "file:///C:/user/Desktop/Selenium/checkbox.html";  //改为你自己的url
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();  //create a chrome driver
driver.manage().window().maximize();  // max size the chrome window
driver.get(URL);   //open URL with the chrome browser
try {
Thread.sleep(2000);                  // wait for web loading
} catch (InterruptedException e) {
e.printStackTrace();
}
List<WebElement> webElements = driver.findElements(By.cssSelector("input[type='checkbox']"));  // Use css selector to get all the checkbox
for (WebElement webElement : webElements) {   // loop through all elements
webElement.click();    // click current element == select the current checkbox
}
System.out.println("Count: " + webElements.size());  //print the count of all the elements
try {
Thread.sleep(3000);  // wait 3s
} catch (InterruptedException e) {
e.printStackTrace();
}
webElements = driver.findElements(By.tagName("input"));  // use tag name to get all the checkbox
webElements.get(webElements.size()-1).click();  // Cancel the last selected checkbox
try {
Thread.sleep(5000);  // wait 5s
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.quit();  // close webdriver
}
}

   测试页面checkbox.html的代码:
<!DOCTYPE html>
<html>
<head>
<title>Get ALl CheckBox</title>
<style type="text/css">
h2 {
text-align:center
}
</style>
</head>
<body>
<h2>CheckBox<h2/>
<form class="form-h">
<div class="input-c">
<input type="checkbox" class="in" id="in1"/>
<div>
<div class="input-c">
<input type="checkbox" class="in" id="in2"/>
<div>
<div class="input-c">
<input type="checkbox" class="in" id="in3"/>
<div>
<div class="input-c">
<input type="checkbox" class="in" id="in4"/>
<div>
<div class="input-c">
<input type="checkbox" class="in" id="in5"/>
<div>
</form>
</body>
</html>
相关文章:
   


最新内容请见作者的GitHub页:http://qaseven.github.io/
  
目录
相关文章
|
1月前
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
92 3
|
1月前
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
112 4
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
|
2月前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
333 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
1月前
|
安全 Devops 测试技术
AppSpider 7.5.018 for Windows - Web 应用程序安全测试
AppSpider 7.5.018 for Windows - Web 应用程序安全测试
42 0
AppSpider 7.5.018 for Windows - Web 应用程序安全测试
|
2月前
|
安全 测试技术 Linux
Acunetix v25.4 发布 - Web 应用程序安全测试
Acunetix v25.4 (Linux, Windows) - Web 应用程序安全测试
109 3
Acunetix v25.4 发布 - Web 应用程序安全测试
|
2月前
|
安全 Linux API
Burp Suite Professional 2025.4 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.4 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
128 6
Burp Suite Professional 2025.4 发布 - Web 应用安全、测试和扫描
|
4月前
|
人工智能 Linux iOS开发
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
182 12
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
4月前
|
安全 JavaScript Java
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
62 12
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
|
4月前
|
数据采集 Web App开发 API
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
本文介绍了如何使用FastAPI和Selenium搭建RESTful接口,访问免版权图片网站Pixabay并采集图片及其描述信息。通过配置代理IP、User-Agent和Cookie,提高爬虫的稳定性和防封禁能力。环境依赖包括FastAPI、Uvicorn和Selenium等库。代码示例展示了完整的实现过程,涵盖代理设置、浏览器模拟及数据提取,并提供了详细的中文注释。适用于需要高效、稳定的Web数据抓取服务的开发者。
205 15
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
|
3月前
|
自然语言处理 安全 测试技术
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试
163 0
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试