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)

 

posted @ 2025-03-20 19:50  uai  阅读(53)  评论(0)    收藏  举报