博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python - web自动化测试 - 元素操作 - 窗口切换
阅读量:5840 次
发布时间:2019-06-18

本文共 1875 字,大约阅读时间需要 6 分钟。

# -*- 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 webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import  expected_conditions as ECfrom selenium.webdriver.common.by import Byimport timedriver = 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_handlestime.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() '''
 

 

转载于:https://www.cnblogs.com/gotesting/p/10291214.html

你可能感兴趣的文章
[分享]Ubuntu12.04安装基础教程(图文)
查看>>
django 目录结构修改
查看>>
win8 关闭防火墙
查看>>
CSS——(2)与标准流盒模型
查看>>
C#中的Marshal
查看>>
linux命令:ls
查看>>
Using RequireJS in AngularJS Applications
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
【ros】Create a ROS package:package dependencies报错
查看>>
通过容器编排和服务网格来改进Java微服务的可测性
查看>>
Java I/O操作
查看>>
灰度图像和彩色图像
查看>>
argparse - 命令行选项与参数解析(转)
查看>>
修改上一篇文章的node.js代码,支持默认页及支持中文
查看>>
java只能的round,ceil,floor方法的使用
查看>>
将txt文件转化为json进行操作
查看>>
我的2014-相对奢侈的生活
查看>>
Java设计模式
查看>>
华为OJ 名字美丽度
查看>>
mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
查看>>