Selenium基础:时间等待 10

1、强制等待  time.sleep()

指定一个固定的线程休眠时间

#-*-coding:utf-8-*-
from datetime import datetime
import time

print(datatime.now())
#等待5S
time.sleep(5)
print(datatime.now())

2、隐式等待   implicitly_wait(time)

全局的针对所有元素设置的等待时间,是对driver的一种隐式等待

driver.implicitly_wait(10)
driver.find_element_by_id('id').click()

3、显式等待   webdriverwait()

WebDriverWait()...until()    true进行下一步 false循环 直到超过设置时间,抛出异常

WebDriverWait()...until_not()  false进行下一步 true循环 直到超过设置时间,抛出异常

#-*-coding:utf-8-*-
from selenium import webdriver
from selenium.webdriver.common.by import By
#导入webdriverwait
from selenium.webdriver.support.ui import WebDriverWait
#导入expected_conditions类
from selenium.webdriver.support import expected_conditions

driver = webdriver.Chrome()
driver.get('url')
#显式等待10s,每隔0.5s尝试一次。默认为0.5s,所以也可不用赋值
WebDriverWait(driver,10,0.5).until(expected_conditions.presence_of_element_located((By.ID, 'search')))

driver.quit()

expected_conditions类中常见页面元素判断方法:

  • title_is:判断当前页面title是否等于预期结果
  • title_contains:判断当前页面title是否包含预期字符串
  • presence_of_element_located:判断元素是否被加到dom树下,该元素不一定可见
  • visiblity_of_element_located:判断元素是否可见,并且元素高和宽都不为0
  • presence_of_all_element_located:判断至少有一个元素被加到dom树下
  • text_to_be_present_in_element:判断元素中text文本是否包含预期字符串
  • text_to_be_present_in_element_value:判断元素中value属性是否包含预期字符串
  • frame_to_be_availabe_and_switch_to_it:判断frame是否可以switch进去,可以返回true并进去,否则false
  • invisiblity_of_element_located:判断元素是否不存在于dom树下或不可见
  • element_to_be_clickable:判断元素可见并可操作
  • element_to_be_selected:判断元素可见并可选中
  • element_selection_state_to_be:判断元素选中状态是否符合预期
  • alert_is_present:判断页面上是否存在alert

 

posted @ 2023-07-10 14:54  1啊1  阅读(33)  评论(0)    收藏  举报