干货||Selenium自动化测试网页
Posted 不是Z君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干货||Selenium自动化测试网页相关的知识,希望对你有一定的参考价值。
今天想跟大家分享的是:关于selenium的自动化测试一些基础的东西
安装环境
1.Python环境
安装完成后通过Windows命令提示符CMD输入“python”,查看是否安装成功
2.安装setuptools与pip
setuptools是PEAK(
PythonenterpriseApplicationKit)的一个副项目,是python的distutilsde的增强工具,可以更方便创建和发布python包,特别是对其他包有依赖的情况;
pip是一个安装和管理python包的工具,通过pip来安装python包将变得很简单,省去了繁琐的过程,pip的安装依赖于setuptools,安装pip之前需要先安装setuptools;
3.下载selenium包
pipinstallselenium
4.下载浏览器驱动
火狐和谷歌各有各的驱动
下载链接:
https://www.seleniumhq.org/do…
简单示例
示例名称:test_python_org_search.py
importunittest
#引入unittest模块是基于JAVAJUnit的Python内置的模块。该模块提供了一个框架
去组织测试用例
fromseleniumimportwebdriver
#selenium.webdriver模块提供了所有WebDriver的实现
fromselenium.webdriver.common.keysimportKeys
#Keys类提供所有的键盘按键操作
classPythonOrgSearch(unittest.TestCase):
#测试类继承自unittest.TestCase.继承TestCase类是告诉unittest模块该类是一个
测试用例
defsetUp(self):
self.driver=webdriver.Firefox()
#SetUp方法是初始化的一部分,创建了一个FirefoxWebDriver的一个实例
deftest_search_in_python_org(self):
driver=self.driver
driver.get(“http://www.python.org”)
#driver.get方法将会根据方法中给出的URL地址打开该网站
self.assertIn(“Python”,driver.title)
#使用assert断言的方法判断在页面标题中是否包含“Python”
elem=driver.find_element_by_name(“q”)
#找到name为q的DOM节点
elem.send_keys(“pycon”)
#在name为q的DOM节点中,输入pycon
elem.send_keys(Keys.RETURN)
#按enter键
assert"Noresultsfound."notindriver.page_source
deftearDown(self):
self.driver.close()
#tearDown方法会在每一个测试方法执行之后被执行。该方法可以用来做一些清扫工作,比如关闭浏览器。当然你也可以调用quit方法代替close
方法
#区别:quit将关闭整个浏览器,而close
只会关闭一个标签页
if__name__==“main”:
unittest.main()
#入口函数
可直接在shell中运行:
pythontest_python_org_search.py
常用方法讲解
1.打开一个页面
driver.get(“http://www.baidu.com”)
WebDriver将等待,直到页面完全加载完毕(其实是等到onload方法执行完毕),然后返回继续执行你的脚本。值得注意的是,如果你的页面使用了大量的Ajax加载,WebDriver可能不知道什么时候页面已经完全加载。
2.与页面交互
WebDriver提供了大量的方法帮助你去查找元素,例如
<inputtype="text"name="passwd"id=“passwd-id”/>
可通过以下方法查找:
element=driver.find_element_by_id(“passwd-id”)
element=driver.find_element_by_name(“passwd”)
element=driver.find_element_by_xpath("//input[@id=‘passwd-id’]")
你还可以通过链接的文本查找他,需要注意的是,这个文本必须完全匹配。当你使用XPATH时,你必须注意,如果匹配超过一个元素,只返回第一个元素。如果上面也没找到,将会抛出NoSuchElementException异常。
执行一些操作,例如
在文本框中输入一些内容:element.send_keys(“sometext”)
清除内容:element.clear()
选择下拉框:WebDriver的支持类有一个叫做Select的类
fromselenium.webdriver.support.uiimportSelect
select.select_by_index(index)根据option的顺序
select.select_by_visible_text(“text”)根据文本
select.select_by_value(value)根据它的value值
取消选择:select.deselect_all()
提交选择:element.submit()
3.拖放
element=driver.find_element_by_name(“source”)
target=driver.find_element_by_name(“target”)
fromselenium.webdriverimportActionChains
action_chains=ActionChains(driver)
action_chains.drag_and_drop(element,target).perform()
4.弹出对话框处理方式
alert=driver.switch_to_alert()
switch_to_alert()#定位弹出对话
text()#获取对话框文本值
accept()#相当于点击"确认"
dismiss()#相当于点击"取消"
send_keys()#输入值,这个alert和confirm没有输入对话框,所以这里就不能用了,所以这里只能使用在prompt这里。
5.操作cookie
打开一个页面driver.get(“http://www.example.com”)
现在设置Cookies,这个cookie在域名根目录下(”/”)生效cookie=‘name’:‘foo’,‘value’:‘bar’driver.add_cookie(cookie)
现在获取所有当前URL下可获得的Cookiesdriver.get_cookies()
6.查找元素
find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
最后:【可能给予你帮助】
这些资料,对于考虑【软件测试】技能进阶的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你
关注我的微信公众号【程序媛木子】免费获取
我的学习交流群:644956177群里有技术大牛一起交流分享~
以上是关于干货||Selenium自动化测试网页的主要内容,如果未能解决你的问题,请参考以下文章