day:26 selenium——文本、if、assert、切换窗口
一.text 获取文本
(1)text 获取文本
eg:sz=dx.find_element_by_id("s-usersetting-top").text
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
dx=webdriver.Chrome()
dx.get("https://www.baidu.com")
time.sleep(2)
dx.maximize_window()
sz=dx.find_element_by_id("s-usersetting-top").text
print(sz)
(2)if 判断文本是否正常
from selenium import webdriver #导入selenium模块中的webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
time.sleep(2)
dx.maximize_window()
time.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
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.baidu.com')" 使用另开网页窗口
dx.execute_script(w)
print(dx.title)
time.sleep(2)
w="window.open('https://www.jd.com')"
dx.execute_script(w)
print(dx.title) 打印标题只能出现第一个页面标题
(2)通过get打开网页,覆盖的,标题就是打开的页面
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) #过期更新
dx.get("https://www.baidu.com")
print(dx.title) #百度一下,你就知道
time.sleep(2)
dx.get("https://www.jd.com")
print(dx.title) #京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!
三.assert 断言
assert判断:正确的通过,执行下一步,失败就报错
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) #过期更新
js=dx.title
assert js=="过期更新"
print("ok")
四.切换窗口
(1)当页面出现两个窗口,可以根据索引切换,索引位0,1
获取当前句柄:jb=dx.current_window_handle
获取所有句柄:jbs=dx.window_handles
选择目标页面句柄:dx.switch_to.window(jbs[1句柄序号])
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.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']
dx.switch_to.window(jbs[1]) #两个窗口索引 0,1
time.sleep(2)
dx.find_element_by_id("kw").send_keys(" 切换")
(2)当页面出现三个窗口,可以根据索引切换,索引位0,2,1
在Selenium中切换三个窗口以上的索引顺序是:第一个打开的窗口索引是0,其他窗口对应的索引顺序是:最后一个打开的窗口索引是1,剩余的窗口对应的索引依次是打开窗口顺序的倒序。
若开4个窗口则排序为:0、2、3、1
案例:切换最后的夜未眠 1
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']
dx.switch_to.window(jbs[1]) #两个窗口索引 0,1
time.sleep(2)
dx.find_element_by_id("kw").send_keys(" 切换")
案例2:
切换中间的窗口
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']
dx.switch_to.window(jbs[2]) #两个窗口索引 0,1
time.sleep(2)
dx.find_element_by_link_text("免费注册").click()
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("切换成功")
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步