美文网首页
UI自动化-打开新的Tab页(init_driver.switc

UI自动化-打开新的Tab页(init_driver.switc

作者: Antus | 来源:发表于2021-11-12 16:48 被阅读0次

    业务中可能会存在如下测试场景:
    在自动化运行过程中,通过新获取的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需再进行一次切换操作。

    相关文章

      网友评论

          本文标题:UI自动化-打开新的Tab页(init_driver.switc

          本文链接:https://www.haomeiwen.com/subject/ypdozltx.html