我正在学习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