ui自动化测试——selenium实战(2)
一、text获取文本并判断判断文本是否正常
#text获取文本
from selenium import webdriver #导入selenium模块中的webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
sleep(2)
dx.maximize_window()
sleep(2)
sz=dx.find_element_by_id("s-usersetting-top").text
print(sz)
if sz=="设置":
print("ok")
else:
print("no")
二、title 标题
1、覆盖性打开网页
from selenium import webdriver #导入selenium模块中的webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
# dx.implicitly_wait(5)
print(dx.title)
dx.get("https://www.baidu.com")
sleep(2)
# dx.implicitly_wait(5)
print(dx.title)
dx.get("https://www.jd.com")
sleep(2)
# dx.implicitly_wait(5)
print(dx.title)

2、重开窗口打开网页
from selenium import webdriver #导入selenium模块中的webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
print(dx.title)
# dx.implicitly_wait(5)
w="window.open('https://www.baidu.com')"
dx.execute_script(w)
print(dx.title)
sleep(2)
# dx.implicitly_wait(5)
w="window.open('https://www.jd.com')"
dx.execute_script(w)
print(dx.title)

三、assert 断言
assert判断:正确的通过,执行下一步,失败就报错
from selenium import webdriver #导入selenium模块中的webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
# dx.implicitly_wait(5)
print(dx.title) #过期更新
js=dx.title
assert js=="过期更新"
print("ok")

四、切换窗口
(1)当页面出现两个窗口,可以根据索引切换,索引位0,1
from selenium import webdriver #导入selenium模块中的webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
# dx.implicitly_wait(5)
w="window.open('https://www.baidu.com')"
dx.execute_script(w)
jb=dx.current_window_handle #获取当前句柄
print(jb)
jbs=dx.window_handles
print(jbs)
dx.switch_to.window(jbs[1])
sleep(2)
dx.find_element_by_id("kw").send_keys("切换")
(2)当页面出现三个窗口,可以根据索引切换,索引位0,2,1
案例:切换最后的页面 1
from selenium import webdriver # 导入selenium模块中的webdrive
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
sleep(2)
# dx.implicitly_wait(5)
w="window.open('https://www.jd.com')"
dx.execute_script(w)
w="window.open('https://www.baidu.com')"
dx.execute_script(w)
jbs=dx.window_handles #获取所有句柄,返回一个列表
dx.switch_to.window(jbs[2])
sleep(2)
dx.find_element_by_link_text("免费注册").click()
在Selenium中切换三个窗口以上的索引顺序是:
第一个打开的窗口索引是0,其他窗口对应的索引顺序是:最后一个打开的窗口索引是1,剩余的窗口对应的索引依次是打开窗口顺序的倒序。
(3)通过for ,判断title 切换窗口
# (3)通过for ,判断title 切换窗口
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
time.sleep(2)
print(dx.title) #过期更新
w="window.open('https://www.jd.com')"
dx.execute_script(w)
print(dx.title) #过期更新
w="window.open('https://www.baidu.com')"
dx.execute_script(w)
print(dx.title) #过期更新
jb=dx.current_window_handle #获取当前句柄
print(jb) #CDwindow-B8A77F2921EDAA393A1436B9980D8CCB
jbs=dx.window_handles #获取所有句柄,返回一个列表
print(jbs) #['CDwindow-B8A77F2921EDAA393A1436B9980D8CCB', 'CDwindow-C9672C1FE1CB891043BF910930A4F819']
for i in jbs:
dx.switch_to.window(i)
if "百度一下,你就知道" in dx.title:
break
print(dx.title)
dx.find_element_by_id("kw").send_keys("切换成功")
四、弹窗
# 1、select弹窗
from selenium import webdriver # 导入selenium模块中的webdrive
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("file:///E:/1/python/ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E2%80%94%E2%80%94selenium/select.html")
sleep(2)
wz=dx.find_element_by_id("dropdown")
# Select(wz).select_by_index(2)
# Select(wz).select_by_value("option2")
Select(wz).select_by_visible_text("温州")

# 2、alert弹窗
from selenium import webdriver # 导入selenium模块中的webdrive
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("file:///E:/1/python/ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E2%80%94%E2%80%94selenium/html%E5%BC%B9%E6%A1%86/alert%E5%BC%B9%E6%A1%86.html")
sleep(2)
tk=dx.switch_to.alert #切换到框内
sleep(2)
tk.dismiss() # 取消
sleep(2)
tk.accept() #确认

# 3、enter弹窗
from selenium import webdriver # 导入selenium模块中的webdrive
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("file:///E:/1/python/ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E2%80%94%E2%80%94selenium/html%E5%BC%B9%E6%A1%86/enter.html")
dx.find_element_by_class_name("alert").click() #点击确认按钮
sleep(2)
tk=dx.switch_to.alert #切换到框内
sleep(2)
tk.accept() #确认
# 4、prompt弹窗(输入弹窗)
from selenium import webdriver # 导入selenium模块中的webdrive
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("file:///E:/1/python/ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E2%80%94%E2%80%94selenium/html%E5%BC%B9%E6%A1%86/prompt.html")
dx.find_element_by_class_name("alert").click() #点击确认按钮
sleep(2)
tk=dx.switch_to.alert #切换到框内
tk.send_keys("dcs") #输入内容
sleep(2)
tk.accept() #确认
# 5、upload弹窗(上传文件)
from selenium import webdriver # 导入selenium模块中的webdrive
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("file:///E:/1/python/ui%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E2%80%94%E2%80%94selenium/html%E5%BC%B9%E6%A1%86/upload_file.html")
dx.find_element_by_id("file").send_keys(r"E:\1\aaa.txt")
6、frame框京东的页面
# 6.frame框京东的页面
from selenium import webdriver # 导入selenium模块中的webdrive
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://graph.qq.com/oauth2.0/show?which=Login&display=pc&response_type=code&state=90EF3B4546E860743D67AA51645C28FDE0C74C87C57734CBB42EFC1AA433CD4124F525D577277D0BE3C00B38EE56B5D3&client_id=100273020&redirect_uri=https%3A%2F%2Fqq.jd.com%2Fnew%2Fqq%2Fcallback.action%3Fuuid%3Dc149a360f02948ec972a719899049268")
sleep(2)
wz=dx.find_element_by_id("ptlogin_iframe")
dx.switch_to.frame(wz)
sleep(2)
dx.find_element_by_id("switcher_plogin").click() #点击密码登录
sleep(2)
dx.switch_to.default_content() #退出框
sleep(2)
dx.find_element_by_link_text("服务协议").click() #点击服务协议

作业:163邮箱
一、滚动条
案例1:
from selenium import webdriver # 导入selenium模块中的webdrive
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.jd.com")
sleep(2)
js="window.scrollTo(0,2000)" #0表示开始顶端 0,2000
dx.execute_script(js)
sleep(2)
js1="window.scrollTo(0,0)" #0表示开始顶端
dx.execute_script(js1)
案例2:
from selenium import webdriver # 导入selenium模块中的webdrive
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.jd.com")
sleep(2)
js="var d=document.documentElement.scrollTop=1000"
dx.execute_script(js)
sleep(2)
js1="var d=document.documentElement.scrollTop=0"
dx.execute_script(js1)
案例3:滑动条进行循环加载
#滑动条进行循环加载
from selenium import webdriver # 导入selenium模块中的webdrive
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.jd.com")
dx.maximize_window()
sleep(2)
i=0
while i<=2000:
i+=500
js="var d=document.documentElement.scrollTop="+str(i)
dx.execute_script(js)
sleep(2)
二、keys类(内容:复制,黏贴,剪切,全选,确认)
导入一个keys类
案例1:
from selenium import webdriver #导入selenium模块中的webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
sleep(2)
dx.find_element_by_id("kw").send_keys("dcs") #输入
sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"a") #全选
sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"x") #剪切
sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"v") #剪切
sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.ENTER) # 确认
案例2:
from selenium import webdriver #导入selenium模块中的webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from time import *
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
sleep(2)
def hs(wz,*dz):
dx.find_element_by_id(wz).send_keys(dz)
sleep(2)
if __name__ == '__main__':
hs("kw","dcs")
hs("kw",Keys.CONTROL,"a")
hs("kw",Keys.CONTROL,"x")
hs("kw",Keys.CONTROL,"v")
hs("kw",Keys.ENTER)

浙公网安备 33010602011771号