python+selenium自动化(六)__切换/处理弹窗与iframe

在web自动化执行过程中,可能需要对页面中的弹窗/iframe进行处理/切换,本节介绍如何利用selenium处理此类操作

一、切换浏览器标签页

使用switch_to_window(window),搭配句柄window_handles、current_window_handle使用

import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.implicitly_wait(10)
driver.find_element_by_id("kw").send_keys("python")
driver.find_element_by_id("su").click()
driver.find_element_by_xpath("//*[@id='2']/h3/a").click()
#获取当前窗口所有句柄
all_windows = driver.window_handles
#获取当前标签页窗口句柄
current_window = driver.current_window_handle
#切换标签页窗口
for window in all_windows:
    if window !=current_window:
        print("切换前的窗口名称是:",driver.title)
        driver.switch_to_window(window)
        time.sleep(2)
        print("切换后的窗口名称是:",driver.title)
        break

二、切换iframe页面

使用switch_to_frame()、switch_to_default_content(),一般成套使用更好,以防止未切回导致定位失败

import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://ke.qq.com/")
driver.implicitly_wait(10)
#点击登录
driver.find_element_by_class_name("btn-default").click()
time.sleep(0.5)
driver.find_element_by_xpath("//*[@class='js-btns-enter btns-enter btns-enter-qq']").click()
time.sleep(2)
#点击账号密码登录
#这里直接定位会失败,需要切换到登录弹窗页面后再进行定位,习惯使用的是2种切换方式
#1.iframe有唯一名称
driver.switch_to_frame("login_frame_qq")
driver.find_element_by_id("switcher_plogin").click()
driver.find_element_by_id("u").send_keys("123456789")
#回切到主页面
driver.switch_to_default_content()
time.sleep(2)
#2.iframe无名字,使用下标进行切换,且下标从0开始
#在页面中查到到当前需要定位的iframe在第3个,所以下标是2
#再次切换到弹窗页面
driver.switch_to_frame(2)
driver.find_element_by_id("p").send_keys("123456789")
driver.find_element_by_id("login_button").click()
driver.switch_to_default_content()
time.sleep(5)
driver.quit()

三、处理弹窗

使用switch_to_alert()中的accept()、dismiss()、send_keys、text进行操作,弹窗一般有三种类型,①.只有确认按钮的;②.有确认/取消按钮的;③.需要输入文字的

import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.implicitly_wait(10)
#创建一个测试弹窗
driver.execute_script("window.alert('这是一个测试弹窗')")
time.sleep(2)
#1.弹窗中只有确认按钮的
driver.switch_to_alert().accept()
time.sleep(1)
#2.弹窗中有确认/取消按钮的
driver.execute_script("window.alert('这是一个测试弹窗')")
time.sleep(3)
#点击取消
driver.switch_to_alert().dismiss()
time.sleep(1)
#弹窗中需要输入文字的
# driver.switch_to_alert().send_keys("测试测试测试")
#获取弹窗中的内容
driver.execute_script("window.alert('这是一个测试弹窗')")
res = driver.switch_to_alert().text
print(res)

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python+Selenium自动化测试是一种基于Python编程语言和Selenium自动化测试框架的测试方法。它可以模拟用户在浏览器中的操作,自动化执行测试用例,提高测试效率和准确性。Python+Selenium自动化测试广泛应用于Web应用程序的测试,包括功能测试、性能测试、安全测试等。 ### 回答2: Python Selenium自动化测试是指使用Python作为编程语言,使用Selenium作为自动化测试工具,对网站进行自动化测试的过程。这种测试方法可以自动化测试需要大量重复操作的网站功能,如注册、登录、搜索等。 Python Selenium自动化测试的主要优点是: 1. 高效性:Python编程语言具有丰富的网络库,可以轻松地访问和操作互联网上的信息,同时Selenium可以模拟用户对网站的真实操作,这使得Python Selenium自动化测试可以自动化执行大量复杂的测试任务,从而提高测试效率。 2. 精度高:Python Selenium自动化测试可以准确地模拟用户对网站的操作,从而可以检查网站功能的正确性和可靠性。 3. 易于使用:使用Python编程语言进行Selenium自动化测试非常容易上手,仅需了解基本的Python语法和Selenium的API即可。 4. 高度可定制性:Python Selenium自动化测试可以完全自定义测试案例,开发者可以根据自己的需要,随时调整测试案例,从而提高测试的灵活性和效率。 在Python Selenium自动化测试中,最常用的测试工具是Selenium WebDriver,它可以模拟用户对网站进行的所有操作,并能够获取和操作网页中的数据和元素,从而实现自动化测试。同时可以使用不同的浏览器驱动程序(如Chrome、Firefox、IE等)来执行测试,从而实现跨浏览器测试。 总之,Python Selenium自动化测试可以帮助开发人员和测试人员快速地高效测试网站的各种功能,提高测试效率和准确性, 并且可以针对复杂的测试场景进行定制化的处理,让测试人员只需关注测试结果,从而减少测试人员的负担。 ### 回答3: Python Selenium自动化测试是一种自动化测试工具和框架,利用Python语言和Selenium库来实现自动化测试过程。它是基于Web应用程序的UI测试,可以模拟用户行为,比如单击按钮、输入文本、检查页面元素等操作来检查应用程序的功能、性能、兼容性等. Python Selenium自动化测试具有以下特点: 1.跨平台兼容性:基于PythonSelenium自动化测试对多种操作系统兼容,如Windows、Linux和Mac OS。 2.多浏览器支持:Python Selenium自动化测试支持Chrome、Firefox、IE、Safari等多种浏览器的自动化测试,可选择不同浏览器运行测试用例。 3.易于使用:Python语言是易于学习的编程语言,使用Selenium的API可以简化测试用例的编写。 4.运行速度快:Python Selenium自动化测试使用操作系统本身的底层机制进行操作,比起手动测试来说用例实现自动化之后运行速度更快。 总之,Python Selenium自动化测试是一种高效、简单、跨平台的自动化测试工具。在现代软件开发中,自动化测试已经成为必不可少的一部分,Python Selenium自动化测试对于Web应用程序的自动化测试是必备的技术决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值