zoukankan      html  css  js  c++  java
  • python selenium-webdriver 标签页切换(十五)

      测试过程中有时候会遇到点击某个按钮或者链接会弹出新的窗口,这时候我们的操作的页面还保持着最初打开页面,但是此时我们需要操作新打开的页面上的功能,这个时候我们需要切换一下标签页 。

      其实页面的切换与frame的切换比较相识,一种切换时本页面内frame的操作,而标签页面是多页面的操作,道理很相似。下面讲解下操作页面标签会涉及到那些方法。

    • driver.current_window_handle                         #获取当前窗口的句柄
    • driver.window_handles                                    #获取所有窗口句柄
    • driver.switch_to_window(windowName)               #切换窗口的句柄

       窗口的切换比较容易,所以我们通过代码详细了解下页面如何切换

    import time
    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com')
    driver.maximize_window()
    driver.find_element_by_id('kw').send_keys(u'梦雨情殇')  #搜索“梦雨情殇的博客”
    now_handle = driver.current_window_handle   #获取当前窗口的句柄
    print(now_handle)  #打印当前窗口的句柄
    print(driver.title)  #获取打开页面的标题
    driver.find_element_by_id('su').click() 
    time.sleep(2)
    driver.find_element_by_xpath('//*[@id="1"]/h3/a').click()  #点击第一条查询的数据
    all_handles = driver.window_handles   #获取到当前所有的句柄,所有的句柄存放在列表当中
    print(all_handles)  #打印句柄
    '''获取非最初打开页面的句柄'''
    for handles in all_handles:
        if now_handle != handles:
            driver.switch_to_window(handles)
    print(driver.title)  #获取切换后的标题
    time.sleep(3)
    driver.quit()

    效果:

    从例子中我们看到无论我们打开几个页面,但是默认的句柄依然保持在最初打开的页面,如果想要操作后面的页面的时候我们首先需要获取到当前所有的打开页面的句柄,然后在遍历选择你需要的句柄,打开标签页顺序也就是列表存放的index顺序,然后我们按照索引选择,最后在切换到对应的页面。最重要的是操作完成对应的页面一定要切换回最初的标签页,然后通过最初的页面进行切换,这边避免最后自己也不知道在操作那个页面,这个是自己的一点的经验吧。

  • 相关阅读:
    支付宝及时到帐接口使用详解
    简便无刷新文件上传系统
    EyesBaby功能实现之窗口拖拽与缩放功能
    Jquery各行换色 click变色
    纯CSS圆角框3-圆角化图片
    WINFORM自定义皮肤制作(上)
    EyesBaby1.0使用帮助文档
    C#实现小写金额转大写金额
    在winform中运用FusionCharts图表(一)
    第一章、基本的圆角框
  • 原文地址:https://www.cnblogs.com/mengyu/p/7455570.html
Copyright © 2011-2022 走看看