# -*- 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() '''
 

最新文章

  1. 【swift学习笔记】六.访facebook登录页面
  2. Oracle sql连接
  3. 如何区分Babel中的stage-0,stage-1,stage-2以及stage-3(二)
  4. 利用Abot爬虫和visjs 呈现漫威宇宙
  5. ux.form.field.SearchField 列表、树形菜单查询扩展
  6. websocket在.net4.5中实现的简单demo
  7. MSChart使用
  8. Mingyang.net:java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()
  9. 巧妙使用Jquery 改变元素的 onclick 事件
  10. [译]15个关于Chrome的开发必备小技巧
  11. ORACLE列值合併
  12. Android学习笔记之View(一):LayoutInflater
  13. 2006 ACM Northwestern European Programming Contest C题(二分求最大)
  14. 169. Majority Element求众数
  15. eclips运行generatorConfig.xml文件生成代码
  16. vs 基本验证控件使用
  17. Luogu4219 BJOI2014 大融合 LCT
  18. 用SWD调试接口测量代码运行时间 ( SWO )
  19. Java语法糖初探(三)--变长参数
  20. 解决 nfs挂载错误wrong fs type, bad option, bad superblock

热门文章

  1. 测试笔记:本地存储localstorage与sessionstorage
  2. CFG的定义
  3. 找父节点和子节点个数(Poj1634)
  4. python 最简单的web应用(一)
  5. 用蒙特卡洛方法计算派-python和R语言
  6. word中磅和mm的换算
  7. 字符串缓冲区StringBuffer类,正则表达式
  8. 通过tomcat配置访问本机资源
  9. >题解< 校门外的树
  10. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [spring/applicationContext-service.xml]: Cannot resolve refer