selenium--等待時間

#####################################################
## 等待時間
#####################################################

"""
expected_conditions 類提供的常見方法
title_is()  判斷標題是否等於預期值。
title_contains()  判斷標題是否包含預期結果。
presence_of_element_located((By.ID,'id1'))  判斷元素是否存在,並返回該元素。
visibility_of_element_located()  判斷元素是否可見。
visibility_of()  判斷元素是否可見
presence_of_all_elements_located()  判斷一組元素的是否存在,並返回元素組
text_to_be_present_in_element((By.ID,'id1'),'菠蘿殼')  判斷元素text值是否包含預期文本信息
text_to_be_present_in_element_value()  判斷元素value值是否包含預期文本信息
frame_to_be_available_and_switch_to_it()  表單是否可用,並切換到該表單。
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()  判斷某個元素的選中狀態是否符合預期。
element_located_selection_state_to_be()  判斷某個元素的選中狀態是否符合預期,並返回定位
alert_is_present()  判斷頁面是否存在警告框 
"""

### 顯示等待/步驟等待
## 等待某一個對象的某一屬性出現某一個值

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

b = webdriver.Chrome()
b.implicitly_wait(1)
b.get('file:///E:/ZM20190316/2.Selenium/TestDemo/waitForDemo/waitForDemo.htm')
b.maximize_window()

b.find_element_by_xpath('/html/body/form/input[2]').click()

# 第一種方法:使用lambda匿名函數
# ta_text = WebDriverWait(b,30,0.5).until(lambda b:b.find_element_by_id('id2'))

# 第二種方法:使用EC類
ipt_text = (By.NAME,'t1')
WebDriverWait(b,30,0.5).until(EC.text_to_be_present_in_element_value(ipt_text,'populated'))

ta_text = b.find_element_by_id('id2')
print(ta_text.text)

sleep(3)
b.quit()
相關文章
相關標籤/搜索