swhxzr

导航

selenium等待

1.强制等待

time.sleep(),必须等到设置的时间结束才能进行下一步,且只对这个地方有效

2.隐性等待

driver.implicitly_wait(),设置最大等待时间,在等待期间,获取想要的结果后就可执行下一步不必等到等待时间结束,对整个driver周期都有效

3.显性等待

WebDriverWait()类,和他的两个方法:until(),until_not(),
类的括号里可传四个参数:driver(驱动)、timeout(超时时间)、poll_frequency=POLL_FREQUENCY(轮询频率,默认0.5)、ignored_exceptions=None(等待过程中要忽略的异常),超时时间和轮询频率必填,其他两个不填也会有默认值
until(),直到满足某个条件,括号里传条件,until_not(),直到不满足某个条件,括号里传条件,
eg:
WebDriverWait(driver,10,0.5).until(EC.title_is("百度一下,你就知道"))
loc=(By.ID,"TANGRAM__PSP_11__footerULoginBtn")
WebDriverWait(driver,10,0.5).until(EC.visibility_of_element_located(loc));

部分内容转载自:https://www.cnblogs.com/zyjimmortalp/p/13417061.html

selenium里都有哪些条件

  • title_is 判断title是否出现
  • title_contains 判断title页面标题是否包含某些字符
  • presence_of_element_located 判断某个元素是否被加载到了dom树里,但是并不代表这个元素可见
  • url_contains 判断当前url是否包含某个url
  • url_matches 判断当前url是否符合某种格式
  • url_to_be 判断当前url是否出现
  • url_changes 判断当前url是否已经发生了变化
  • visibility_of_element_located 判断某个元素是否被添加到了dom树里,且宽高都大于0
  • visibility_of 判断看某个元素是否可见
  • presence_of_all_elements_located 判断至少有一个元素存在于dom树中,返回所有定位到的元素
  • visibility_of_any_elements_located 判断至少有一个元素在页面中可见
  • visibility_of_all_elements_located 判断是否所有元素都在页面中可见
  • text_to_be_present_in_element 判断指定的元素中是否包含了预期的字符串
  • text_to_be_present_in_element_value 判断指定的元素属性值中是否包含了预期的字符串
  • frame_to_be_available_and_switch_to_it 判断iframe是否可以switch进去
  • invisibility_of_element_located 判断某个元素是否在dom中不可见
  • element_to_be_clickable 判断某个元素是否可见并且是enable的,也就是说是是否可以点击
  • staleness_of 等待某个元素从dom中删除
  • element_to_be_selected 判断某个元素是否被选中了,一般用于下拉列表中
  • element_located_to_be_selected 与上面的意思一样,只不过上面实例化的时候传入的是元素对象,这个传入的是定位
  • element_selection_state_to_be 判断某个元素的选中状态是否符合预期
  • element_located_selection_state_to_be 与上面一样,只不过传值不同而已
  • number_of_windows_to_be 判断当前窗口数是否等于预期
  • new_window_is_opened 判断是否有窗口增加
  • alert_is_present 判断页面是否有弹窗

以上就是selenium支持的所有条件。



posted on 2021-04-29 17:20  swhxzr  阅读(54)  评论(0编辑  收藏  举报