UI自动化-打开新的Tab页(init_driver.switch_to.window())

业务中可能会存在如下测试场景:
在自动化运行过程中,通过新获取的URL访问其他页面,需重新打开一个tab页,在另一个tab页上进行元素查找校验等一系列验证工作,但此时元素的定位等操作仍停留在第一个页面,如何进行页面操作,使得driver切换至新tab,本文讲解两种方式:

1、重新启动一个driver

当获取一个新的url时,可重新启动一个driver,并get这个url,此时浏览器会再开一个,当然比较耗性能,但可满足业务需求,按照脚本执行步骤,在新的url里进行业务验证;

 driver_new = None
    if BROWSER_TYPE == "Firefox":
        driver_new = webdriver.Firefox(executable_path=ff_driver_path)
    elif BROWSER_TYPE == "Chrome":
        driver_new = webdriver.Chrome(executable_path=chrome_driver_path, options=options)
    elif BROWSER_TYPE == "IE":
        driver_new = webdriver.Ie(executable_path=ie_driver_path)
    driver_new.set_window_size(1920, 1080)
    logger.info(driver_new.get_window_size())
    driver_new.get(share_url)

2、使用driver切换window_handles

    init_driver.execute_script("window.open('{}');".format(share_url))
    window_after = init_driver.window_handles[1]
    init_driver.switch_to.window(window_after)
     # {
     #  do some check
     # }
    window_before = init_driver.window_handles[0]
    init_driver.switch_to.window(window_before)

此方法使用driver切换window_handles,window_handles是个列表,默认从0开始,新打开一个列表+1,值得注意的是,当driver切换至其他windows_handles并执行完操作后,切换回初始windows_handles需再进行一次切换操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容