自動化測試中,有時可以根據某元素是否出現(即可見)來進行斷言,判斷元素是否可見的方法如下:
from selenium.webdriver.support import expected_conditions as EC def is_element_visible(self, element): driver = self.driver try: the_element = EC.visibility_of_element_located(element) assert the_element(driver) flag = True except: flag = False return flag
需要進行判斷時,調用此方法即可。
有時在進行操作后,某元素需要一段時間后才能顯示,此時可以設置一時間限制,在此時間間隔內不斷判斷該元素是否可見,若找到則繼續后續操作,否則提示元素未找到。代碼如下:
from selenium.webdriver.common.by import By from datetime import datetime the_element = is_element_visible(self, (By.ID, "kw")) if the_element: print "element appears." else: time_start = datetime.now() while True:
time_now = datetime.now()
time_difference = (time_now - time_start).seconds
if time_difference < 60: recheck_the_element = is_element_visible(self, (By.ID, "kw"))
if recheck_the_element: print "element appears." break else: continue
else:
print "element not appears."
