• selenium三个等待时间


    1.强制等待sleep(秒):当设置时间很少,1秒2秒的设置可以用sleep,长时间等待不适用。

    import time
    
    time.sleep(10) #10单位是s

    2.隐性等待:设置最长等待时间,在这个时间内加载完成,则执行下一步。整个driver的会话周期内,设置一次即可,全局都可用。--比如:设置最长等待30s,在查找到元素时,即进行下一步操作。若超时仍未找到,则报错,提示未找到元素

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    
    driver.implicitly_wait(30)

    注:在设置隐性等待中再设置强制等待,会生效

    3.显性等待(重点):明确等到某个条件满足之后,再去执行下一步操作。

       程序每隔xx秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设定的最长时间,然后抛出TimeoutException。

       WebDriverWait类:显性等待类

       WebDriverWait(driver,等待时长,轮循周期).until/until_not

       等待时长单位:秒

    1)引入三个包:By类中提供了8种定位方式。EC中提供了很多期望条件的类。

    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By

    2)找到元素存在,并传入参数类型与值,元组类型。其中10为timeout时间。

    ele_locator = "//a[text()='用法详解 - 道高一尺 - 博客园']"
    param = (By.XPATH,ele_locator)
    #使用webdriverwait,使得操作的元素存在
    WebDriverWait(driver,10).until(EC.presence_of_element_located(param))

    3)Expected_conditions模块:提供了一系列期望发生的条件

    a.title_is:

    b.title_contains:

    c.presence_of_element_located:元素存在

    d.presence_of_all_elements_located:所有元素存在

    e.url_matches:

    f.url_to_be:

    g.url_changes:

    h.url_contains:

    i.visibility_of

    j.visibility_of_element_located:元素可见

    k.invisibility_of_element_located

    l.text_to_be_present_in_element_value

    m.text_to_be_present_in_element

    n.element_to_be_clickable:元素可点击

    o.staleness_of

    p.element_to_be_selected

    q.element_located_to_be_selected

    r.element_selection_state_to_be

    s.number_of_windows_to_be

    t.alert_is_present:alert元素存在

    u.new_window_is_opened:新窗口打开

  • 相关阅读:
    开发者和设计师:为何我们不能好好相处?(转载)
    PHP ACCESS
    来自腾讯的session跨域,跨服代码
    php大括号妙用。
    php mysql 记录集的操作
    开始我的代码笔记
    收藏一个php用的一个页码按钮类
    修改过后的数字英文字符生成图片代码
    搜藏一点php session 常用方法
    php包含漏洞收集程序代码
  • 原文地址:https://www.cnblogs.com/xiaoxiaolvdou/p/9276548.html
Copyright © 2020-2023  润新知