(1):导入selenium
导入方式一:from selenium import webdriver
导入方式二:import selenium
(2)创建对象:driver=webdriver.Chrome()
(3)通过对象谷歌浏览器打开打开网站: driver.get(url)
from selenium import webdriver #导入一个selenium 库中导入webdriver模块
‘’’
在Python中做UI自动化:selenium’’’
创建一个drvier对象用来调用打开浏览器,对浏览器实现操作
driver =webdriver.Chrome() #主讲谷歌浏览器
#driver =webdriver.Ie()
#driver =webdriver.firefox()
‘’‘通过调用webdrvier.来引用对应的浏览器,生成一个浏览器对象
注意事项:webdrvier. 点后面的浏览器名称不要自己输入用联想
还有自己添加一个英文的小括号() 小括号的作用是:把它声明成为
一个匿名对象 那么当前的drvier就是一个浏览器驱动对象,可以用它来
对对应的浏览器实现操作的动作’’’
#UI自动化所有的调用都必须在最前面加上一个drvier对象
#通过对象来打开谷歌浏览器且输入网址
#driver.get(‘http://www.baidu.com’)
#通过对象调用get方法来打开一个网站URL
注意:Hdriver=webdriver.浏览器的名称一定是大写开头
======================
打开页面方法:
方法一:在原有的窗口打开
driver.get(’ 网址 ')
案例:driver.get(‘http://www.baidu.com’)
方法二: 另开窗口,打开浏览器
w=“window.open(‘http://cms.duoceshi.cn/cms/manage/login.do’)” #通过窗口 打开浏览器
driver.execute_script(w) #执行脚本
=============
2、常用自动化时间有三种:
sleep (多) 强制等待: 无论自动化进行的快、慢都要等待设置的时间
理解:不管车来没有来,你等5分钟走。(车来了等5分钟,车没有来也等5分钟)
implictly _wait 隐性等待 (好) 在限制的时间内完成就进行下一步,如果没有执行就等待10s。
理解:(你等5分钟,5分钟之内有车来,你就走,没有车来就等到5分钟再走,)
webdriverwait 显性等待(几乎不用)
案例场景:
(1)强制等待的场景:
from selenium import webdri
from time import sleep
driver=webdriver.Chrome()
url=“http://discuz.e70w.com/”
driver.get(url)
sleep(10)
w=“window.open(‘http://cms.duoceshi.cn/cms/manage/login.do’)”
driver.execute_script(w) #执行脚本
(2) 隐性等待
from selenium import webdri
from time import sleep
driver=webdriver.Chrome()
url=“http://discuz.e70w.com/”
driver.get(url)
driver.implicitly_wait(10)
w=“window.open(‘http://cms.duoceshi.cn/cms/manage/login.do’)”
driver.execute_script(w) #执行脚本
(3)显性等待:
用的场景(打印日志,比如:在一定的时间执行结果,没有就抛出异常,日志刷新时间)
WebDriverWait配合该类的until()和until_not()方法,根据条件灵活的等待
程序每隔xx秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException。
A. 使用前,先引用相关库
B. 确定元素的定位表达式
在 自动化测试中你要到过哪些问题?
在定位的过程中,我们添加时间等待,页面元素因为网络和 设备,代码等影响,加载时间太慢或太快,导致无法定位元素 。
页面的切换
back 返回上一页
forward 返回下一页
案例如下:
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()#通过对象谷歌浏览区且输入网址,在用
url=“http://discuz.e70w.com/”
driver.get(url) #第一步打开论坛第一网站 :论坛
sleep(3)
url1=“https://www.baidu.com/”
driver.get(url1) #第二步打开论坛第二网站 :百度
sleep(3)
driver.back() #第三步:返回到第一步论坛
sleep(2)
driver.forward() #第四步:从第一步中返回下一页:百度
=======================
设置窗口的大小
(1)设置浏览器的大小
(2)设置窗口最大化:
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()#通过对象谷歌浏览
url=“http://discuz.e70w.com/”
driver.get(url)
sleep(3)
driver.set_window_size(500,500) #
sleep(3)
driver.maximize_window() #窗口最大化
在 自动化测试中你要到过哪些问题?
在定位的过程中,我们窗口最大化,窗口不是最大化,元素可能定位不到,出现报错,所以在 。ui自动化中要把页面最大化
=====================================
get_screenshot_as_file 截屏
格式:driver.get_screenshot_as_file(r"路径\图片名称.、后缀名")
案例:
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()#通过对象谷歌浏览区且输入网址,在用get方法打开浏览区
url=“http://discuz.e70w.com/”
driver.get(url)
driver.get_screenshot_as_file(r"D:\安装包\临时文件\aa.png")
图例:
==================
quit 退出
close 退出:
1.退出有两种方式,一种是 close;另外一种是 quit
2.close 用于关闭当前窗口,当打开的窗口较多时,就可以用 close 关闭部分窗口
3.quit 用于结束进程,关闭所有的窗口
案例:
from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()#通过对象谷歌浏览区且输入网址,在用get方法打开浏览区
url=“http://discuz.e70w.com/”
driver.get(url)
sleep(3)
w=“window.open(‘http://cms.duoceshi.cn/cms/manage/login.do’)”
driver.execute_script(w)
sleep(2)
driver.close() #部分关闭 ,关闭了论坛,显示当前的cms
driver.quit() #全部关闭,