1.多窗口切换
selenium中封装了获取当前窗口句柄,获取所有窗口句柄和切换到指定句柄窗口的方法:
句柄:handle 是操作系统随机生成的随机字符串
方法:
driver.current_window_handle 获取当前窗口句柄
driver.window_handles 获取所有窗口句柄,该方法的返回值类型为列表形式
driver.switch_to.window(handle) 切换指定句柄窗口
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(10)
# 访问网站并打开多个窗口
driver.get("https://www.csdn.net/")
driver.find_element_by_xpath('//a[@target="_blank"]/p').click()
time.sleep(3)
# 获取当前窗口句柄信息
print(driver.current_window_handle)
# 获取所有句柄信息
list = driver.window_handles
print(list) #可以用下标的方式获取指定窗口句柄
# 切换指定窗口
driver.switch_to.window(list[0]) # -1表示最后一个窗口
time.sleep(3)
2.窗口截图
一般使用场景在自动化测试用例执行失败了后使用截图功能,保存截图到指定位置
方法:
driver.get_screenShot_as_file(filename)
截图中的文件名必须是png结尾
储存的文件目录filename必须手动创建
# 结合try except的方式来捕获异常并截图
try:
driver.find_element_by_xpath("000").click()
except Exception as e:
# 报错后截图保存,保存在当前目录的pic文件夹中
driver.get_screenshot_as_file('pic/error1.png')
# 抛出异常
raise e
driver.quit()