selenium--多窗口操作
前戏
想一想,我们为什么要获取窗口句柄呢?有什么用呢?
来假设一下,我们打开了一个网站,点击了一个按钮,新打开了一个页面,我们在新页面操作完成之后,需要回到原来的页面继续操作,这时候你如果继续操作原来的页面会报错的。因为当前的窗口句柄不是原来的,这时候就需要用到driver.switch_to.window('窗口句柄')来切换到之前的窗口了
实战
from selenium import webdriver
import unittest
import time class Test_windowHandle(unittest.TestCase):
def test_getwindowHandle(self):
url = 'http://www.baidu.com'
self.driver = webdriver.Chrome()
self.driver.get(url)
# 获取当前窗口句柄
now_handle = self.driver.current_window_handle
# 打印当前窗口句柄
print(now_handle)
self.driver.find_element_by_id('kw').send_keys('python')
self.driver.find_element_by_id('su').click()
time.sleep(3)
self.driver.find_element_by_link_text('官网').click()
time.sleep(5)
all_handles = self.driver.window_handles
print(self.driver.window_handles[-1])
for handle in all_handles:
if handle != now_handle:
self.driver.switch_to.window(now_handle) # 切换到原来的窗口
print(handle) test1 = Test_windowHandle()
test1.test_getwindowHandle()
结果:
CDwindow-7A4FB6B28A26B9F733880575DE519BBB
CDwindow-EB4CC0FE714BA702CFE7C93FEE21EF5E
CDwindow-EB4CC0FE714BA702CFE7C93FEE21EF5E
selenium--多窗口操作的更多相关文章
- Python+Selenium学习--窗口切换及操作元素
场景 有时候我们在测试一个web 应用时会出现多个浏览器窗口的情况,在selenium1.0 中这个问题比较难处理.webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的 ...
- selenium 相关api操作
driver.close(); //关闭程序 driver.findElement(By.id("idExpression")); //查找单个页面元素 driver.findEl ...
- selenium java 浏览器操作
环境搭建 selenium 2.53 selenium-java-2.53.0.jar selenium-java-2.53.0-srcs.jar 原代码包 拷贝的工程lib下,做build path ...
- selenium webdriver窗口切换(上)
selenium webdriver窗口切换,有时候在做自动化的时候需要打开很多很多的页面, 当在操作不同的页面的时候需要切换窗口,下面是如何切换到前后页面窗口的操作: package test201 ...
- selenium 浏览器基础操作(Python)
想要开始测试,首先要清楚测试什么浏览器.如何为浏览器安装驱动,前面已经聊过. 其次要清楚如何打开浏览器,这一点,在前面的代码中,也体现过,但是并未深究.下面就来聊一聊对浏览器操作的那些事儿. from ...
- selenium 鼠标,键盘操作
1.打开和关闭网页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/env python # -*- coding:u ...
- Selenium Web元素操作
我们定位到Web页面元素之后,可以对元素进行一系列的操作,实现跟页面的交互.包括点击.文本输入.元素属性获取等.常用的方法列举如下: 方法 描述 click() 点击元素 send_keys(**va ...
- uCGUI窗口操作要点
uCGUI窗口操作要点 1. 创建一个窗口的时候,会给此窗口发送“创建(WM_CREATE)”消息,从而执行它的回调函数:如果创建窗口的标志带有“可视标志(WM_CF_SHOW)”,那么在后续执行GU ...
- Structured-Streaming之窗口操作
Structured Streaming 之窗口事件时间聚合操作 Spark Streaming 中 Exactly Once 指的是: 每条数据从输入源传递到 Spark 应用程序 Exactly ...
- WPF: WpfWindowToolkit 一个窗口操作库的介绍
在 XAML 应用的开发过程中,使用MVVM 框架能够极大地提高软件的可测试性.可维护性.MVVM的核心思想是关注点分离,使得业务逻辑从 View 中分离出来到 ViewModel 以及 Model ...
随机推荐
- LeetCode 167:两数之和 II - 输入有序数组 Two Sum II - Input array is sorted
公众号: 爱写bug(ID:icodebugs) 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1 和 index2,其中 index ...
- MySQL8的密码策略
解释: 由于valiadte_password策略.密码强度需要非常高,所以有时候密码都无法成功修改.了解完下面变量就能解决了. validate_password.policy:密码策略,检查用户的 ...
- 【MySQL】binlog2sql
binlog2sql 1.安装 shell> git clone https://github.com/danfengcao/binlog2sql.git && cd binlo ...
- Security实现登录安全控制
1:在pom.xml中添加依赖 <!-- 身份验证 --> <dependency> <groupId>org.springframework.security&l ...
- Centos6 No CMAKE_CXX_COMPILER could be found
[1]问题现象 cmake发生异常:如下图所示 [2]问题分析 Centos6 上使用Cmake出现错误 "No CMAKE_CXX_COMPILER could be found.&quo ...
- 【LeetCode】145. Binary Tree Postorder Traversal
Difficulty: Hard More:[目录]LeetCode Java实现 Description https://leetcode.com/problems/binary-tree-pos ...
- 【java】Java多线程总结之线程安全队列Queue【转载】
原文地址:https://www.cnblogs.com/java-jun-world2099/articles/10165949.html ============================= ...
- CDR镂空字踩坑记录
做个成品,看似没毛病 坑1 但是对整体上个色就会发现,白框部分一片漆黑(字黑色,框子黑色) 然后根据大牛的作品染色后没毛病推出 ==> 字体要做镂空字 坑1解决 先把框内元素全部选择(字.矢量图 ...
- MVC+Ninject+三层架构+代码生成 -- 总结(三、實體類)
一.動軟代碼生成器生成 實體類 2.VS視圖--實體類,其中Condition文件夾是存放 搜索的分頁信息 using System; using System.Collections.Generic ...
- 一、NodeJS入门——准备工作(1)——NodeJS的安装
目录 1.介绍 2.nodejs下载 3.nodejs安装 4.nodejs的简单实用 5.nodejs的经典入门:hello world 6.总结 1 介绍 这是一系列的内容主要是关于我在学习 ...