Python selenium3 弹窗处理&新窗口切换

1.系统自带弹窗

操作步骤:
    1.操作触发弹窗操作的元素
    2.捕获弹窗
        alert = driver.switch_to.alert
    3.操作弹窗
        获取弹窗的文本:alert.text
        点击弹窗的确定按钮:alert.accept()
        点击取消按钮:alert.dismiss()
        发送文字:alert.send_keys()

实操:

# 5.元素操作
# 滚动条至底
js = "arguments[0].scrollIntoView();"
search_alert = driver.find_element_by_css_selector("#alerta")
driver.execute_script(js, search_alert)
sleep(2)
# 5.2 点击弹窗元素
search_alert.click()
sleep(2)
# 5.3 获取弹窗户文本
alert = driver.switch_to.alert
print(alert.text)
# 5.4 点击确定
alert.accept()
sleep(2)

2.自定义弹出窗

语法:
    通过js方法来处理自定义弹窗,将自定义弹窗隐藏
    js ='document.getElementById("side-bar").style.display="none";'
    执行js是代码:driver.execute_script(js)

实操:

# 4.元素操作
# 4.1 定位元素 通过js代码
js1 ='document.getElementById("side-bar").style.display="none";'
js2 ='document.getElementById("iframe_company_mini_div").style.display="none";'
# 4.2 执行js代码
driver.execute_script(js1)
sleep(2)
driver.execute_script(js2)
sleep(2)

3.新窗口切换

语法:
    driver.switch_to.window(句柄/id)
    获取当前窗口句柄: handles = driver.window_handles 返回一个列表
    获取所用窗口句柄: handle =  driver.current_window_handle 返回一个字符串

实操:

# 1.导入selenium
from selenium import webdriver
from time import sleep
import os

# 2.打开谷歌浏览器
driver = webdriver.Chrome()
# 3.打开百度
url = "file:///" + os.path.abspath("../../练习页面/注册实例.html")
driver.get(url)
driver.maximize_window()
sleep(2)
# 4.元素操作
# 4.1 获取当前窗口句柄
handle = driver.current_window_handle
print(type(handle))   # <class 'str'>
print(handle)  # CDwindow-613F1C6DB8ABDE0F2AD6172AACEBFA01
# 操作当前窗口元素
user = driver.find_element_by_css_selector("#user")
user.clear()
user.send_keys("user123")
sleep(2)
# 4.2 触发新窗口元素
driver.find_element_by_partial_link_text("注册A网页").click()
sleep(2)
# 4.3 获取所有有句柄
handles = driver.window_handles
print(type(handles))  # <class 'list'>
print(handles)   # ['CDwindow-613F1C6DB8ABDE0F2AD6172AACEBFA01', 'CDwindow-8DF3946EEF01EE79BDA5013206285DCD']
# 4.4 进入新窗口
driver.switch_to.window(handles[len(handles)-1])
# 4.5 操作新窗口元素
userA = driver.find_element_by_css_selector("#userA")
userA.clear()
userA.send_keys("root")
sleep(2)
# 4.6 退出新窗口
driver.switch_to.window(handle)
sleep(2)
# 操作退出后窗口元素
tel = driver.find_element_by_css_selector("#tel")
tel.clear()
tel.send_keys("123456")  # 验证已经退出
sleep(2)
# 6.关闭浏览器
driver.quit()

猜你喜欢

转载自blog.csdn.net/qq_39286483/article/details/104244124
今日推荐