• Python+webdriver自动化脚本初学记录之窗口切换(2)


    为什么要研究窗口切换?

    答:如driver.get("http://www.baidu.com/")打开百度网站,即第一个窗口,该窗口页面上存在可点击的链接,点击这些链接会打开另一个新的窗口,即第二个窗口,这时如果要第二个窗口中操作,就需要先切换到第二个窗口中,就需要用到窗口切换,如果不进行切换,则操作的对象还是上一个页面窗口。浏览器窗口的切换通过句柄(handle)来操作,每个窗口都有一个句柄,代表该窗口,需要操作哪个页面的窗口,切换到窗口对应的句柄。通过driver.switch_to.window(handle)来切换句柄。

    下面这个脚本过程是:打开百度网站(第一个窗口),输入“腾讯首页”搜索,搜索结果中点击腾讯首页,弹出新窗口,即腾讯网站首页(第二个窗口),获取所有窗口句柄,切换到第二个窗口句柄,点击NBA,进入NBA 窗口(第三个窗口)。关闭第二个窗口,然后切换到第一个窗口,输入框输入新浪微博,并搜索。最后关闭并退出浏览器。

    今天说的是要在第一个窗口和第二个窗口之间切换的一种方式。

    1、在出现了第二个窗口后,使用handles=drvier.window_handles获取所有窗口句柄(第一个和第二个)

    2、然后driver.switch_to.window(handles[1])切换到第二个窗口句柄 ,切换完点击该窗口中的NBA(此时会弹出第三个窗口),并关闭第二个窗口。

    注意:即使弹出第三个窗口,我们要进行操作时指向的对象仍然停留在第二个窗口。所以脚本中driver.close()关闭的是第二个窗口

    3、最后driver.switch_to.window(handles[0])切换到第一个窗口句柄,切换完成后进行一系列操作:搜索框输入新浪微博并搜索,然后driver.quit()退出浏览器。

     

  • 相关阅读:
    Linux 中 java 访问 windows共享目录
    Java中Calender引用类型
    Hadoop MultipleOutputs 结果输出到多个文件夹 出现数据不全,部分文件为空
    转个扯淡的~
    nginx+uwsgi部署python web(web.py)
    关于已经安装python为何还要安装python-dev
    centos7安装mysql5.6
    centos7.0防火墙更换为firewalld
    并发模型(二)——Master-Worker模式
    并发模型(一)——Future模式
  • 原文地址:https://www.cnblogs.com/yaoze2018/p/9859051.html
Copyright © 2020-2023  润新知