Selenium+Python自动化测试入门
简介
Selenium是一个流行的自动化测试工具,它可以在浏览器上模拟多种操作,比如用户输入、点击、滚动等等,还可以获取浏览器中的元素进行断言、检查等等。Selenium的支持范围广泛,包括Chrome、Firefox、Safari等浏览器,而且它的Python库也非常容易使用,对于初学者来说是一个非常友好的选择。
本文将介绍Selenium+Python自动化测试的基础知识、操作流程和示例。
安装Selenium
Selenium的Python库可以通过pip安装,命令如下:
pip install selenium
此外,还需要根据使用的浏览器安装相应的WebDriver:
- Chrome:https://chromedriver.chromium.org/downloads
- Firefox:https://github.com/mozilla/geckodriver/releases
- Safari:默认已经包含在macOS中
下载后需要将WebDriver所在的目录添加到环境变量中,以便Python可以找到。
编写测试用例
接下来我们将介绍如何编写一个简单的Selenium+Python自动化测试用例,首先需要导入Selenium库和WebDriver:
from selenium import webdriver
driver = webdriver.Chrome() # Chrome浏览器
# driver = webdriver.Firefox() # Firefox浏览器
这里我们选择使用Chrome浏览器,如果想使用其他浏览器可以更改对应的代码。
接下来,我们可以调用WebDriver的一些方法来模拟用户操作,比如打开网页、输入文本、点击按钮等等。
driver.get('http://example.com') # 打开网页
driver.find_element_by_name('username').send_keys('username') # 输入用户名
driver.find_element_by_name('password').send_keys('password') # 输入密码
driver.find_element_by_css_selector('input[type="submit"]').click() # 点击提交按钮
在上面的示例中,我们使用了find_element_by_XXX方法来获取网页中的元素,并使用send_keys方法来输入文本,最后使用click方法来模拟点击按钮。
除此之外,我们还可以使用一些断言方法来验证测试结果:
assert 'Welcome' in driver.title # 验证标题中是否包含Welcome
完整的代码如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://example.com')
driver.find_element_by_name('username').send_keys('username')
driver.find_element_by_name('password').send_keys('password')
driver.find_element_by_css_selector('input[type="submit"]').click()
assert 'Welcome' in driver.title
示例:百度搜索
接下来我们将介绍一个示例,演示如何使用Selenium+Python自动化测试进行百度搜索。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.find_element_by_id('kw').send_keys('Selenium') # 输入搜索关键字
driver.find_element_by_id('su').click() # 点击“百度一下”按钮
assert 'Selenium' in driver.title # 验证标题中是否包含Selenium
driver.quit() # 关闭浏览器窗口
在代码中,我们首先创建了一个Chrome浏览器的WebDriver对象,然后打开了百度的首页,接着使用find_element_by_id
方法获取了搜索框和“百度一下”按钮的元素,并使用send_keys
方法输入搜索关键字,最后使用click
方法模拟了点击“百度一下”按钮的操作。
在搜索结果页面中,我们使用assert
方法验证了标题是否包含搜索关键字“Selenium”,如果验证通过则不会有任何输出,否则程序会抛出错误提示。
示例:爬取网页数据
Selenium还可以用来爬取网页数据,比如获得某个网站中的所有链接,然后进行分析和处理。下面是一个示例:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.example.com')
# 获取所有链接
links = driver.find_elements_by_xpath('//a[@href]')
for link in links:
href = link.get_attribute('href')
print(href)
driver.quit() # 关闭浏览器窗口
在代码中,我们首先打开了一个网站的首页,然后使用find_elements_by_xpath
方法获取所有带有href
属性的链接,并遍历了所有链接,输出了它们的href
属性值。
总结
本文介绍了Selenium+Python自动化测试的基础知识、操作流程和示例,它们足以满足大部分基础测试需求。当然,Selenium还有更多的高级特性和用法,需要根据具体场景进行深入学习和探索。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Selenium+Python自动化测试入门 - Python技术站