Selenium获取当前窗口句柄与切换回原窗口句柄

Selenium通过window_handles获取当前窗口句柄,进行页面元素操作

切换回原窗口句柄,进行元素操作

代码如下:(python版)

__author__ = ‘liuke‘

import unittest,time,re
from selenium import webdriver

class Untitled(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(10)
        self.url = "http://www.baidu.com"

    def test_Untitled (self):
        driver = self.driver
        driver.get(self.url)
        now_handle = driver.current_window_handle #获取当前窗口句柄
        print (now_handle)   #输出当前获取的窗口句柄
        driver.find_element_by_id("kw").send_keys("流柯")
        driver.find_element_by_id("su").click()
        driver.find_element_by_partial_link_text("www.cnblogs.com/liu-ke/ ").click() #点击链接跳转新标签页
        time.sleep(2)
        all_handles = driver.window_handles #获取所有窗口句柄

        for handle in all_handles:

            if handle != now_handle:
                print (handle)    #输出待选择的窗口句柄
                driver.switch_to_window(handle) #绑定
                driver.find_element_by_id("blog_nav_sitehome").click()
                time.sleep(5)
                driver.close() #关闭当前窗口
        time.sleep(3)
        print (now_handle)   #输出主窗口句柄
        driver.switch_to_window(now_handle) #返回主窗口
        time.sleep(2)
        driver.find_element_by_id("kw").clear()
        driver.find_element_by_id("kw").send_keys("12306")
        driver.find_element_by_id("su").click()

        time.sleep(10)

    def tearDown(self):
        self.driver.quit()
        #pass

if __name__ == "__main__":
    unittest.main()

以上。

注意driver与新窗口的绑定。

时间: 2024-12-27 18:36:25

Selenium获取当前窗口句柄与切换回原窗口句柄的相关文章

selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口)

网上有很多是selenium基于python来获取两个窗口句柄与切换,本文实现用python+selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口),且在每个窗口下进行一个搜索或翻译,然后截图. 代码如下: 1 # coding=utf-8 2 from selenium import webdriver 3 import time 4 5 driver = webdriver.Chrome() 6 driver.maximize_window() # 窗口最大化 7 8 driver

Android自定义通知布局Notification,点击Notification导航切换回原Activity

一个简单的应用场景:假如用户打开Activity以后,按Home键,此时Activity 进入-> onPause() -> onStop() 不可见.代码在此时机发送一个Notification到通知栏.当用户点击通知栏的Notification后,又重新onRestart() -> onStart() -> onResume() 切换回原Activity. package zhangphil.pendingintent; import android.os.Bundle; im

selenium获取元素内容,iframe切换,和常用方法

获取元素信息 1. text 属性,显示该元素在web页面显示出来的文本内容 2. get_attribute方法 获取某个属性的值: element.get_attribute(元素属性) element.get_attribute('href') element.get_attribute('style') 获取该元素对应HTML源代码: element.get_attribute('outerHTML') 获取该元素的内部部分的HTML源代码: element.get_attribute(

Power Pivot表属性无法切换回表预览模式的问题

近期Office365用户升级后解决了在Power Pivot中输入中文的问题,但是同时也带来了一个新的问题就是表属性窗口默认为“查询编辑器”模式,且无法切换回“表预览”模式. 本文和您分享在这种情况下如何对源数据进行更改操作. [导入时未进行筛选的情况]   从Excel文件导入数据到PowerPivot, 注意红色部分的信息: 文件名 - 记录了所抓取的Excel文件名称和位置信息 源表 -记录了数据所在的工作表信息(Sheet) 预览并筛选 - 此处我们没有进行任何筛选操作 数据导入后,我

JSCover+WebDriver/Selenium获取JS代码覆盖率

我们在看JSCover(http://tntim96.github.io/JSCover/manual/manual.xml)介绍及使用说明的时候,往往被图形界面所吸引.这种方式比较适合手工操作,点击和输入即可. 但是这种往往界面和真实界面相差比较大,因为真正的网页在JSCover内部的浏览加载框中.这使得原有的Selenium代码可能存在诸多问题.那么如何能够尽量少地改变原有的selenium代码而又获取到js的code coverage呢?这可以采用文件模式(File Mode). 1. I

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

/** * 一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? * */ public class Test2 { public static void main(String[] args) { double num = 100, sum = 0; for (int i = 0; i < 10; i++) { sum += num*2; num /= 2; } sum -= 100; System.out.println(

问题:一球从某高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?

import java.util.Scanner; //题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? public class BallTest { public static void main(String[] args) { double firsthight; int n; Scanner in = new Scanner (System.in);//从键盘读取两个数据 System.out.println

selenium 获取table数据

public class Table { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub WebDriver driver = ExplorerBase.IESetting(); String url = "http://zs.njust.edu.cn/newzs/news/zhxw/20140710151805.htm"; driver.m

桌面Linux系统的先驱者慕尼黑现在正在考虑切换回Windows

From: http://arstechnica.com/business/2014/08/linux-on-the-desktop-pioneer-munich-now-considering-a-switch-back-to-windows/ 市政府称,用户不满意Linux的成本高于预期. 世界仍然在等待的Linux桌面这一年的到来,但在2003年看起来好像是可以实现的这个目标. 当时,慕尼黑市宣布计划将属于市政府的14000台PC从微软的技术切换到Linux. 虽然该计划遭到推迟 ,它于2