一、切换窗口
#获取打开的多个窗口句柄
windows = driver.window_handles
#切换到当前最新打开的窗口
driver.switch_to.window(windows[-1])
#最大化浏览器
driver.maximize_window()
#刷新当前页面
driver.refresh()
二、切换框架frame
如存在以下网页:
<html lang="en">
<head>
<title>FrameTest</title>
</head>
<body>
<iframe src="a.html" id="frame1" name="myframe"></iframe>
</body>
</html>
可以使用4中方式切换frame
#1.用frame的index来定位,第一个是0
driver.switch_to.frame(0)
#2.用id来定位
driver.switch_to.frame("frame1")
#3.用name来定位
driver.switch_to.frame("myframe")
#4.用WebElement对象来定位
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
三、切换alert()提示框
#1. 获取alert
driver.switchTo().alert()
#2.点确定
alert.accept()
#3.点取消
alert.dismiss()
#4.获取alert的内容
alert.getText()
以下是使用中的一个例子:
alert = driver.switch_to.alert #切到弹出框
print(alert.text)
a=alert.text
alert.accept()
return '添加成功!' in a
在Selenium中,可以使用以下方法来切换窗口、框架和弹出框:
- 切换窗口:
driver.switch_to.window(window_handle)
:通过窗口句柄(window handle)切换到指定的窗口。可以使用driver.window_handles
获取所有窗口的句柄,然后通过索引或其他方式选择要切换的窗口。
- 切换框架(iframe):
driver.switch_to.frame(frame_reference)
:通过框架的名称或索引切换到指定的框架。可以使用框架的名称或索引来定位到框架,并切换到它。
- 处理弹出框(alert):
driver.switch_to.alert
:切换到当前页面上的警告框(alert)。可以使用accept()
接受警告框,点击确定按钮;使用dismiss()
关闭警告框,点击取消按钮;使用send_keys(text)
向警告框发送文本。
注意事项:
- 切换窗口和框架时,需要确保当前焦点在正确的上下文中。You可能需要先切换到默认内容,即主页面,然后再进行窗口或框架的切换。
- 在处理弹出框之前,需要等待弹出框的出现。可以使用显式等待来等待弹出框的出现。
示例代码:
python
# 切换窗口
main_window = driver.current_window_handle # 获取当前窗口句柄
new_window = driver.window_handles[1] # 假设有多个窗口,选择第二个窗口
driver.switch_to.window(new_window) # 切换到新窗口
# 切换框架
driver.switch_to.frame("frame_name") # 通过框架名称切换
driver.switch_to.frame(0) # 通过索引切换
# 处理弹出框
alert = driver.switch_to.alert
alert.accept() # 点击确定按钮
alert.dismiss() # 点击取消按钮
alert.send_keys("text") # 发送文本
以上是在Selenium中切换窗口、框架和处理弹出框的方法。根据具体情况,你可以选择适当的方法来实现你的测试需求。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。