美文网首页
webdriver_api_设置元素等待

webdriver_api_设置元素等待

作者: 想_上天 | 来源:发表于2018-08-25 16:46 被阅读0次

    设置元素等待-----元素定位时的操作

    1.sleep(s)              python time模块下面的方法

    2.implicitly_wait(s)    webdriver隐式等待

    3.显示等待              seleniu模块中的EC类提供的方法

    sleep:强制等待,比如sleep(50)强制等待50秒,50之内不做任何事情。

    implicitly_wait(s):隐式等待比如implicitly_wait(100)在100以内,如果元素在第三秒被加载出来,自动执行下面的脚本,不会一直等待100s,如果说在超过100秒以外,元素依然没有被加载出来,那就会报错!NosuchElementError错。改方法是webdriver api 提供的方法

    webdriver提供的方法都要用dr.这样的句柄来写比如dr.get("www.baidu.com")

    #隐式等待

    from selenium import webdriver

    dr = webdriver.Chrome()

    dr.get("www.baidu.com")

    dr.implicitly_wait(100)

    dr.find_element_by_id("kw").send_keys("123")

    dr.find_element_by_id("su").click()

    dr.quit()

    3.显示等待(自动化优先用)

    #要先引入类

    from selenium.webdriver.support import expected_conditions as EC

    from selenium.webdriver.support.ui import WebDriverWait

    from selenium.webdriver.common.by import By #By元素定位的封装的另一种写法

    #显示等待

    try:

        element = WebDriverWait(dr,5,0.5) .until(EC.presence_of_element_located((By.ID,"kw")))

        element.send_keys("123")

        sleep(3)

        dr.find_element_by_id("su").click()

    except Exception as a

        pass    

    finally:

        dr.quit()

    #(dr,5,0.5):表示获取驱动,最多等待5秒,每0.5秒检查元素是否加载出来。加载出来了就运行下边的代码,没加载出来那就0.5秒0.5秒的叠加直到加载出来为止

    相关文章

      网友评论

          本文标题:webdriver_api_设置元素等待

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