我正在尝试使用selenium为我的网站构建测试,我的网站是基于django构建的,因此内置了测试用例。在
我使用的是djangosliveservertestcase,就像他们的文档建议的那样。我已经成功地使用这段代码运行了测试用例
import sys
2
3 from django.test import LiveServerTestCase
4
5 #selenium webdriver for web simulation and testing
6 from selenium import webdriver
7 from selenium.webdriver.common.keys import Keys
8 from selenium.webdriver.support.ui import WebDriverWait
9 from selenium.webdriver.common.by import By
10 from selenium.webdriver.support import expected_conditions as EC
11 from users.models import User
12
13 class DashboardTestCases(LiveServerTestCase):
14
15 @classmethod
16 def setUpClass(cls):
17 cls.driver = webdriver.Firefox()
18 super(DashboardTestCases, cls).setUpClass()
19
20 @classmethod
21 def tearDownClass(cls):
22 super(DashboardTestCases, cls).tearDownClass()
23 user = User.objects.filter(username="test")
24 if user.exists():
25 user.delete()
26 cls.driver.quit()
27
28 def test_base(self):
29 self.driver.get(self.live_server_url)
30 self.assertIn("neury", self.driver.title)
31
32 def test_sign_in(self):
33 user = User.objects.create_superuser("test", "test@test.com", "test123")
34 print(user.username)
35 self.driver.get('%s%s' % (self.live_server_url, '/admin/'))
36 user = self.driver.find_element_by_id('id_username')
37 user.send_keys('test')
38 password = self.driver.find_element_by_id('id_password')
39 password.send_keys('test123')
40 submit = self.driver.find_element_by_class_name('grp-button')
41 submit.click()
42 try:
43 element = WebDriverWait(self.driver, 10).until(
44 EC.presence_of_element_located((By.ID, 'grp_admin_title'))
45 )
46 finally:
47 self.driver.get('%s%s' % (self.live_server_url, '/datasets/'))
这将检查初始主页加载,然后创建用户并可以登录到管理页面。但是当我尝试转到/datasets/link时,浏览器中出现了一个错误,它只是一个HTML屏幕,上面说“哎哟”,我认为这是因为我重新驱动的速度太快,所以我在中添加了wait子句,以等待django admin id标题在重新驱动之前找到。但这并没有解决问题。在
有人知道这个错误是什么吗?我怎样才能阻止它发生?!在
只要澄清这篇文章,我已经设法解决了这个问题。在
Debug=True,在标准设置文件中不起作用,您必须在正在构建的testclass的init方法中提供,如下所示:
这将为您提供正确的错误消息,并通过selenium进行堆栈跟踪,以便您进行调试。在
相关问题 更多 >
编程相关推荐