python - web自动化测试 - 元素操作 - 窗口切换
Posted Jiaxy Gogogo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python - web自动化测试 - 元素操作 - 窗口切换相关的知识,希望对你有一定的参考价值。
# -*- coding:utf-8 -*- \'\'\' @project: web学习 @author: Jimmy @file: 元素操作-切换.py @ide: PyCharm Community Edition @time: 2019-01-19 10:43 @blog: https://www.cnblogs.com/gotesting/ \'\'\' \'\'\' windows窗口切换:切换到要操作的窗口 有多个窗口 1. 触发新窗口的出现 2. 得知道新窗口是谁 -- 依据窗口的window_handle来识别窗口 3. 得到窗口的window_handle -- driver.window_handles(当前打开的所有窗口的句柄) A. 得到的是一个有序列表 B. 新窗口: -1 4. 切换:driver.switch_to.window(要切换的窗口的句柄) \'\'\' from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By import time driver = webdriver.Chrome() driver.get(\'http://www.baidu.com\') driver.find_element_by_id(\'kw\').send_keys(\'少年阿玉 博客园\') driver.find_element_by_id(\'su\').click() wins = driver.window_handles time.sleep(3) # 点击到新窗口 driver.find_element_by_xpath("//*[@id=\'1\']//h3//a").click() # 判断新窗口是否已打开 WebDriverWait(driver,5,1).until(EC.new_window_is_opened(wins)) # 切换窗口 # 1. 获取所有窗口 wins1 = driver.window_handles # 2. 切换到最新窗口 driver.switch_to.window(wins1[-1]) \'\'\' alert弹出框操作 (1)使用switch_to方法先切换到浏览器弹出框 driver.switch_to.alert (2)Alert类提供了一系列的操作方法 dismiss(): 否 accept(): 是 text(): 获取弹出框里的文本内容 Send_keys(): 在弹出框里输入文本 \'\'\' alert = WebDriverWait(driver,10,1).until(EC.alert_is_present()) alert.accept()
\'\'\'
iframe切换
方式一:
WebDriverWait(driver,20,1).until(EC.visibility_of_element_located(By.XPATH,\'XXXXXXX\'))
1. 确认你要操作的元素,是否存在于iframe中,如果元素在iframe中,则切换
2. 找到这个iframe
3. 切换到这个iframe
driver.switch_to.frame() # name or index or webelement
time.sleep(1)
4. 切换完成后,目前就是以iframe当中的html为主html
方式二:
WebDriverWait(driver,20,1).until(EC.frame_to_be_available_and_switch_to_it(\'XXXXXX\'
回到默认的html页面,无论身在哪一层iframe,执行一次就可。
driver.switch_to.default_content()
\'\'\'
以上是关于python - web自动化测试 - 元素操作 - 窗口切换的主要内容,如果未能解决你的问题,请参考以下文章
Selenium3与Python3实战 Web自动化测试框架
Web自动化测试06:元素操作浏览器操作方法以及获取元素信息