我正在學習Selenium Web驅動程序,並已開始使用python來測試網站。我在等待元素不存在代碼時遇到問題,因爲它似乎正在超時。Selenium Webdriver:(python)等待元素不存在(不工作)
這是我到目前爲止的代碼。
def test_(self):
driver = self.driver
driver.get(self.base_url + "/abc")
driver.find_element_by_id("UserName").clear()
driver.find_element_by_id("UserName").send_keys("username")
driver.find_element_by_id("Password").clear()
driver.find_element_by_id("Password").send_keys("password")
driver.find_element_by_id("loginbutton").click()
for i in range(60):
try:
if not self.is_element_present(By.CSS_SELECTOR, ".blockUI"): break
except: pass
time.sleep(1)
else: self.fail("time out")
driver.find_element_by_xpath(".//*[@id='ChangeTaskGridM']/table/thead/tr/th[1]/a").click()
for i in range(60):
try:
if not self.is_element_present(By.CSS_SELECTOR, ".blockUI"): break
except: pass
time.sleep(1)
else: self.fail("time out")
driver.find_element_by_xpath(".//*[@id='ChangeTaskGridM']/table/thead/tr/th[2]/a").click()
for i in range(60):
try:
if not self.is_element_present(By.CSS_SELECTOR, ".blockUI"): break
except: pass
time.sleep(1)
else: self.fail("time out")
我不知道爲什麼它超時。如果我刪除了blockUI,它會運行得更快,我也不想在兩者之間進行手動中斷。有任何想法嗎?
當前的代碼來檢測,而不是你的代碼is_element_present
for i in range(60):
try:
if not self.is_element_present(By.CSS_SELECTOR, ".blockUI"): break
except: pass
time.sleep(1)
else: self.fail("time out")
請添加'is_element_present'的代碼 – Guy
我已經在底部添加了它的說明 – Matt
我的意思是執行'is_element_present',而不是你如何調用它。 – Guy