selenium关于等待的处理方法

1.通过判断控件是否存在来决定等待时长。主要用于两种情况:1.页面跳转时,通过判断新页面的某个控件是否存在来判断页面跳转是否结束。2.点击下拉菜单后,通过判断选项中某个控件是否存在来判断下拉菜单的js是否执行完毕。代码如下:

1 my_xpath = '/html/body/div[3]/div[2]/div[' + str(dm) + ']' #此处是下拉菜单某个选项的xpath
2 WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located((By.XPATH, my_xpath)))

2.对于页面整体刷新的情况,通过判断页面是否整体刷新来决定等待时长。主要用于页面出现整体刷新时使用。代码如下:

driver.implicitly_wait(10)

3.对于页面采用ajax进行局部刷新的情况,通过判断ajax回调函数是否执行完毕来决定等待时长,主要用于处理ajax局部刷新的页面。代码如下:

WebDriverWait(driver, 10).until(lambda s: s.execute_script("return jQuery.active == 0"))

 

posted @ 2020-11-30 16:49  xinyangq  阅读(151)  评论(0)    收藏  举报