常规用法
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webdriver import WebDriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class HomePage:
exists_link = (By.XPATH, '/html/body/div[2]/div/div[2]/div[1]/span')
def __init__(self, driver: WebDriver):
self.driver = driver
def get_element_exists(self):
try:
WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(self.exists_link))
except:
return False
else:
return True
2、等待条件及其含义
等待条件 | 含义 |
---|---|
title_is
|
标题是某内容
|
title_contains
|
标题包含某内容
|
presence_of_element_located
|
节点加载出,传入定位元组,如
(By.ID, 'p')
|
visibility_of_element_located
|
节点可见,传入定位元组
|
visibility_of
|
可见,传入节点对象
|
presence_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 frame
|
加载并切换
|
invisibility_of_element_located
|
节点不可见
|
element_to_be_clickable
|
节点可点击
|
staleness_of
|
判断一个节点是否仍在
DOM,可判断页面是否已经刷新
|
element_to_be_selected
|
节点可选择,传节点对象
|
element_located_to_be_selected
|
节点可选择,传入定位元组
|
element_selection_state_to_be
|
传入节点对象以及状态,相等返回
True,否则返回
False
|
element_located_selection_state_to_be
|
传入定位元组以及状态,相等返回
True,否则返回
False
|
alert_is_present
|
是否出现
Alert
|