【发布时间】:2012-02-24 14:32:57
【问题描述】:
我正在 Selenium Webdriver 中为我的 Django 应用程序创建单元测试。
我有一个从数据库中删除主题的 AJAX 方法。 我正在尝试弄清楚如何验证页面上不再存在已删除的主题。
我试图捕捉当 Webdriver 找不到元素时应该生成的异常: selenium.common.exceptions.NoSuchAttributeException
相反,我看到一个错误:
*** URLError: <urlopen error timed out>
这是我设置测试的方式:
from selenium import webdriver
from django.utils import unittest
class TestAuthentication(unittest.TestCase):
scheme = 'http'
host = 'localhost'
port = '4444'
def setUp(self):
self._driver = webdriver.Firefox()
self._driver.implicitly_wait(10)
def login_as_Kallie(self):
# Kallie has manual login
self._driver.get('http://localhost:8000/account/signin/')
user = self._driver.find_element_by_id('id_username')
user.send_keys("Kallie")
password = self._driver.find_element_by_id('id_password')
password.send_keys('*********')
submit = self._driver.find_element_by_id('blogin')
submit.click()
def test_Kallie_can_delete_topic(self):
self.login_as_Kallie()
self._driver.find_element_by_link_text("Topic to delete").click()
self._driver.find_element_by_xpath("/html/body/div/div[4]/div/div/div[2]/div/table/tbody/tr/td[2]/div/div[3]/span[5]/a").click()
self._driver.find_element_by_class_name('dialog-yes').click()
self._driver.get("http://localhost:8000/questions/")
# this is the Python exception to catch: selenium.common.exceptions.NoSuchAttributeException
self.assertRaises('selenium.common.exceptions.NoSuchAttributeException', self._driver.find_element_by_link_text("Topic to delete"))
def tearDown(self):
self._driver.quit()
如何测试页面元素是否缺失?
【问题讨论】:
标签: python django unit-testing selenium webdriver