Selenium学习笔记2

Selenium自动化测试
本文介绍如何使用SeleniumIDE录制测试脚本并导出为Java文件,重点讲解了页面控件的识别方法及其适用场景。

最近准备用Selenium自动化录制测试脚本,稍微总结一下。

Selenium的主页是http://seleniumhq.org

Selenium包括很多组件,其中我现在用的是Selenium RC和Selenium IDE。Selenium IDE是Firefox的一个插件,我们可以使用它录制页面操作。

Selenium IDE安装完毕之后,可以从工具菜单中激活,然后我们就可以在firefox中访问需要测试的网页,进行各种页面操作,Selenium IDE在这个过程中会记录我们的页面控件和动作。完成录制之后,Selenium IDE生成一个HTML文件保存脚本,比如:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://www.baidu.com/" />
<title>baidu</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">baidu</td></tr>
</thead><tbody>
<tr>
	<td>open</td>
	<td>/</td>
	<td></td>
</tr>
<tr>
	<td>type</td>
	<td>kw</td>
	<td>ckword</td>
</tr>
<tr>
	<td>clickAndWait</td>
	<td>sb</td>
	<td></td>
</tr>
</tbody></table>
</body>
</html>

我们可以导出成Java文件,比如:

package com.example.tests;

import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;

public class NewTest extends SeleneseTestCase {
	public void setUp() throws Exception {
		setUp("http://www.baidu.com/", "*chrome");
	}
	public void testNew() throws Exception {
		selenium.open("/");
		selenium.type("kw", "ckword");
		selenium.click("sb");
		selenium.waitForPageToLoad("30000");
	}
}
只要导入相应的selenium和Junit包就可运行。

有一点需要注意的是在回放脚本时,应该添加setSpeed方法,参数是ms,因为Selenium IDE虽然可以选择回放速度(慢——中——快),但实际上即使选择慢速,Selenium IDE仍然运行的有些快,导致其在顺序执行用户操作时,可以发生没等到页面加载完毕就执行下一个命令的现象,导致下一个命令找不到响应的页面控件。除了setSpeed之外,Selenium IDE还可以添加大量的命令。具体见Selenium IDE界面。

另外一个关键是如何识别页面控件。自动化的核心是录制的控件识别方法可以复用,Selenium IDE支持的识别格式包括ID、Name、XPath:attributes、DOM index和XPath:position,而且允许正则表达式,所以非常灵活,根据我使用的情况来看,对于富客户端应用,控件ID通常都增加了一个随机数,不适合做识别,Name还不错,但是如何这个控件Name带有版本信息,比如控件在不断升级,从1.3升到1.4,那么Name可以会失效,要小心。XPath:position我用的最多,也觉得定位最准。但是Selenium IDE有时抓不到某些操作,比如,可以某一个Logout链接,是由span来实现的,此时Selenium IDE抓不到,此时可以XPath:attributes识别,这样写://span[text()='Log out'],搞定。

对于Selenium IDE,还有很多细节需要学习,比如正则表达式的应用,如何写出通用的识别方法,等等。我准备使用Selenium IDE录制脚本,然后导出成java文件,做一些修改之后用Selenium RC驱动。

当然,我可以帮你输出一篇Selenium学习笔记。以下是一份简单的学习笔记供参考: Selenium学习笔记 Selenium是一款用于自动化Web应用程序测试的强大工具。它提供了一组丰富的API,可以与各种编程语言(如Python、Java、C#等)结合使用,以实现Web应用程序的自动化测试。 1. 安装和配置 首先,你需要安装Selenium库。如果你使用Python,可以使用以下命令安装: ``` pip install selenium ``` 安装完成后,你还需要下载并配置相应的浏览器驱动程序。Selenium支持各种浏览器,如ChromeFirefox、Safari等。你可以在Selenium官方网站上找到相应的驱动程序下载链接。 2. 基本操作 Selenium提供了一系列方法来模拟用户在浏览器中的操作,如打开URL、点击元素、输入文本等。以下是一些常用的基本操作示例: - 打开浏览器并访问URL: ```python from selenium import webdriver driver = webdriver.Chrome() # 使用Chrome浏览器驱动 driver.get("https://www.example.com") # 打开指定URL ``` - 查找元素并操作: ```python element = driver.find_element_by_id("element_id") # 根据元素ID查找 element.click() # 点击元素 input_element = driver.find_element_by_name("input_name") # 根据元素名称查找 input_element.send_keys("Hello, World!") # 输入文本 ``` - 执行JavaScript代码: ```python driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") # 滚动到页面底部 ``` 3. 高级操作 Selenium还提供了一些高级操作,如处理弹窗、切换窗口、等待元素加载等。以下是一些常用的高级操作示例: - 处理弹窗: ```python alert = driver.switch_to.alert # 切换到弹窗 alert.accept() # 接受弹窗 confirm = driver.switch_to.alert # 切换到确认框 confirm.dismiss() # 取消确认框 ``` - 切换窗口: ```python window_handles = driver.window_handles # 获取所有窗口句柄 driver.switch_to.window(window_handles[-1]) # 切换到最后一个窗口 ``` - 等待元素加载: ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "element_id")) ) ``` 4. 测试框架 Selenium还可以与测试框架(如Pytest、JUnit等)结合使用,以便更好地组织和管理测试用例。你可以使用测试框架提供的断言方法来验证测试结果。 ```python import pytest def test_example(): driver = webdriver.Chrome() driver.get("https://www.example.com") assert "Example Domain" in driver.title # 断言页面标题包含指定文本 driver.quit() ``` 以上是一份简单的Selenium学习笔记,希望对你有所帮助。当然,Selenium还有很多其他功能和用法,你可以进一步深入学习和探索。祝你学习愉快!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值