selenium是进行UI自动化的
unittest是用来管理和执行用例的,只有把selenium和unittest结合起来才叫做UI自动化
一、环境部署
1.dos命令 :pip install selenium进行selenium下载
2.下载最新版本的谷歌/火狐浏览器
3.下载浏览器对象的webdrive驱动(chromedriver/gekcodriver)
下载地址:
二、启动浏览器
先导包
import os from selenium import webdriver
方式一:
1.把webdriver驱动放到python安装路径中
2.创建一个浏览器对象-->driver=webdriver.Chome()
方式二:
1.在项目下新建一个webdriver文件夹然后把webdriver驱动放到webdriver文件夹下
2.
#获取当前代码文件所在文件夹(目录) current_path=os.path.dirname(__file__) # print(driver_path) #获取chromedriver.exe的路径 driver_path=current_path+'/../webdriver/chromedriver.exe' #Chrom是一个类 dirver = Chrom() 创建一个谷歌浏览器对象 ch_dirver=webdriver.Chrome(executable_path=driver_path)
三、浏览器操作API(方法)
1.操作类
1)get(url地址)----打开网址
2)minimize_window()----最小化窗口
3)maximize_window()----最大化窗口
4)back()----后退
5)forward()-----前进
6)refresh()-----刷新
7)close()-----关闭tab页
8)quit()----关闭浏览器
import os,time
from selenium import webdriver
current_path=os.path.dirname(__file__)
driver_path=current_path+'/../webdriver/chromedriver.exe'
ch_dirver=webdriver.Chrome(executable_path=driver_path)
ch_dirver.get('https://www.baidu.com')
time.sleep(3)
ch_dirver.minimize_window()#最小化
time.sleep(3)
ch_dirver.maximize_window()#最大化
time.sleep(3)
ch_dirver.save_screenshot('test.png')#在本地生成test.png图片
title=ch_dirver.title#获取网页标题
url_value=ch_dirver.current_url#获取网页url地址
page_source=ch_dirver.page_source#获取网页源代码
print(title)
print('********************************************')
print(url_value)
print('********************************************')
print(page_source)
ch_dirver.back()#后退
ch_dirver.forward()#前进
ch_dirver.erfresh()#刷新
ch_dirver.close()#关闭tab页
# driver.guit()#关闭浏览器
2.获取类
1)screenshot(截屏路径)-----截屏
2)title-----获取浏览器标题
3)current_url-----获取网页当前url地址
4)page_source----获取网页源代码
# element=ch_dirver.find_element_by_xpath('//input[@id="kw"') # print(element.size)#获取元素尺寸 ----宽和高 # print(element.get_attribute('autocomplete'))#获取元素属性值 # print(element.tag_name)#获取元素标签名 # print(element.location)#获取元素在网页上的位置----左上角坐标 # print(element.is_displayed())#判断元素是否在网页上显示 True # print(element.is_enabled())#判断元素是否禁用 没有禁用True # print(element.is_selected())#判断元素单选按钮和复选框,判断是否被选中 True # print(element.text)#获取文本内容
四、元素信息获取
1.谷歌开发者工具
2.火狐开发者工具
五、元素定位(API)
1.find_element__by_id----元素id属性
2.find_element__by_name-----元素name属性
3.find_