zoukankan      html  css  js  c++  java
  • selenium06-多窗口切换与延时等待

    多窗口切换

    当浏览器打开多个窗口,就需要对这些窗口进行操作,如切换到某个窗口,关闭某个窗口,查看当前一共打开了多少个窗口等

    driver.window_handles  #查看当前打开了哪几个窗口,返回的是一个列表,每个元素是一个窗口

    driver.current_window_handle  #查看当前所在的窗口

    driver.switch_to_window(driver.window_handles[1])  #切换到窗口列表中第二个元素代表的窗口

    driver.close()  #关闭当前操作的窗口

    driver.quit()  #关闭浏览器驱动的所有窗口

    测试脚本中等待方法

    测试脚本中,有三种等待方法:

    time.sleep() 方法

    time.sleep(times)  #接受一个参数,为等待的时间

    强制固定等待设定的时间,即使页面已经加载完成,也会等待,知道设定的时间达成。

    import time  #导入time模块

    time.sleep(5)  #固定等待5秒

    implicitly_wait() 隐式等待

    由WebDriver 提供的 impliciyly_wait(times) ,可对浏览器驱动设定等待时间,对之后浏览器驱动上的访问都会生效。如果元素定位成功,结束等待,否则一直等待并进行定位检测,直到定位成功,或timeout,就停止等待,并报出超时错误。

    driver.implicitly_wait(5)  #设置了5秒等待时间,之后的元素定位每次操作都进行5面超时等待,如果找到了,就马上返回,如果找不到,会等待五秒再抛出异常

    WebDriverWait() 显式等待

    也是webdriver提供,

    需要先导入模块支持:from selenium.webdriver.support.ui import WebDriverWait

    WebDriverWait(dirver, timeout, poll_frequency=0.5, ignored_exceptions=None)

    接受三个参数

    driver  #浏览器驱动

    timeout  #超时时限

    poll_frequency=0.5  #查询频率,默认为0.5秒,可以修改,也可以不管

    WebDriverWait() 后面通常接 until() 或者 until_not() 搭配使用

    until(method, message=“”)  #一直检查,直到 method 返回为 true,第二个参数可以不设置

    until_not(method, message='')  #一直检查,直到method返回为false

    其中,method 为一个方法,可以使用匿名函数如 lambda driver :driver.find_element_by_id('kw')

    ele_login = WebDriverWait(driver, 10).until(lambda driver:driver.find_element_by_id('kw'))

    #定位 di = ‘kw’ 的元素,设置等待10秒,每0.5秒检测一次,如果定位成功就结束等待,如果定位失败就重新尝试,直到定位成功或超时后报错。

    函数形式则可以这样:

    def get_ele_times(driver, times, func):

      return WebDriverWait(driver, times).until(func)

    ele = get_ele_times(driver, 10, lamdba driver:driver.find_element_by_id('kw'))

  • 相关阅读:
    判断一个字符串是否为回文串
    读<大道至简>软件工程实践者的思想有感
    Java学习10.23(设置页面的编码方式1)
    Java学习10.25(javaweb在界面输出2)
    【搜索】C000_LG_奶酪(bfs)
    【并查集】B001_AW_自动程序分析(不要求顺序时的离散化)
    b_aw_信息传递 & 银河英雄传说(并查集暴力求环 / 记忆化 | 带权并查集)
    b_pat_团伙头目(并查集/dfs+字符串整形互相映射)
    【堆】C003_AW_接水问题(暴力 / 堆)
    【并查集】C002_AW_樱桃网 & 打击犯罪(最下生成树 / dfs / 并查集求连通块)
  • 原文地址:https://www.cnblogs.com/maigeyouziba/p/11212203.html
Copyright © 2011-2022 走看看