python+selenium库实现UI自动化测试的基本操作
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。
- 要调用selenium库驱动浏览器必须把浏览器的驱动器放入python安装目录下
- 支持浏览器
Firefox (FirefoxDriver)
IE(InternetExplorerDriver)
Opera(OperaDriver)
Chrome (ChromeDriver)
safari(SafariDriver) - 安装好驱动器后就可以开始调用selenium库进行浏览器驱动了
from selenium import webdriver
driver=webdriver.Chrome() #启动谷歌浏览器
driver.get("http://www.baidu.com") #访问百度
driver.quit() #退出浏览器
- 浏览器元素的操作
from selenium import webdriver
driver.forward()#前进
driver.back()#后退
driver.refresh()#刷新
print(driver.title)#查看网页的标题
print(driver.current_window_handle) #查看网页句柄 (网页的唯一标识)print(driver.window_handles) #获取当前浏览器打开的所有页面的句柄
print(driver.get_window_size())#浏览器尺寸
driver.get_screenshot_as_file(r"c:\11.png")#截图当前页面
driver.close()#关闭
driver.quit()#关闭
driver.maximize_window()#最大化
driver.minimize_window()#最小化
- 页面元素的定位
find_element_by_id('id')
#通过id定位
find_element_by_name('name')
#通过name定位,只返回匹配到的一个元素
find_elements_by_name('name'
)#通过name定位,返回所有匹配到的元素列表
find_element_by_class_name('class')
#通过classname定位
find_element_by_tag_name('tag')
#通过标签定位,只返回匹配到的一个元素
find_elements_by_tag_name('tag')
#通过标签定位,返回所有匹配到的元素列表
find_element_by_link_text('textname')
#通过超链接文件定位
find_element_by_partical_link_text('textname')
#通过部分超链接文字定位
find_element_by_xpath('path')
#通过xpath定位
- 用百度网页举例
下图是定位到的百度一下输入框
#coding = utf-8
from selenium import webdriver #导入selenium的webdriver包
driver = webdriver.Chrome()#启动谷歌浏览器
driver.get("https://www.baidu.com")#打开百度网址
driver.find_element_by_id('kw').send_keys('新年')
#使用id定位,在搜索框中输入nihao
driver.find_element_by_name('wd').send_keys('快乐')
#使用name定位,删除搜索框中输入的文字
driver.find_element_by_class_name('s_ipt').send_keys('python')
#使用class name定位,再一次在搜索框
driver.find_element_by_id('su').click()
#使用id定位,点击‘百度一下’按钮进行搜索
driver.close() #关闭浏览
- XPATH定位
- XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的
#绝对路径,寻找html → body → div → input元素,一层一层定位寻找
drive.find_element_by_xpath('html/body/div/input')
#相对路径,先定位到div,再找到div下的input
drive.find_element_by_xpath('//div/input')
#属性定位
drive.find_element_by_xpath('//*[@id="kw"]')#用ID定位
drive.find_element_by_xpath('//*[@name="kw"]')#用name定位
- CSS Selector定位
- 使用CSS Selector来定位元素,一般比XPATH更快更准确也更容易
#用id定位
drive.find_element_by_css_selector(‘#id’)
#用name定位
drive.find_element_by_css_selector('.name')
- 定位下拉框
driver.get('file:///C:/Users/hunk/Desktop/select.html') time.sleep(2) #默认option显示"Fiat"
Select(driver.find_element_by_name('cars')).select_by_value('value')
#实例化Select,按索引选择
(转载注明出处)