##################################################### ## 等待時間 ##################################################### """ 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()