Django pytest-selenium 功能测试
Django pytest-selenium functional tests
我已经创建了测试文件夹,编写了我的第一个测试应该打开浏览器,指向一个页面并登录,然后转到主页。
测试 运行 并按预期失败,但我找不到原因。
browser应该可用,pytest-selenium是通过pip安装的。
import pytest
from django.contrib.auth.models import Group, Permission, User
from django.test import TestCase, RequestFactory
class CreaPageTest(TestCase):
def setUp(self):
self.factory = RequestFactory()
def test_homepage(self):
request = self.client.get('/new')
request.user = self.user
self.assertEqual(request.status_code, 200)
def test_login(self):
request = self.client.get('/per/login')
username_field = self.browser.find_element_by_name('username')
username_field.send_keys('peppa')
password_field = self.browser.find_element_by_name('password')
password_field.send_keys('pig')
password_field.send_keys(Keys.RETURN)
test_homepage()
> username_field = self.browser.find_element_by_name('username')
E AttributeError: 'CreaPageTest' object has no attribute 'browser'
tests/test_ore_app_views.py:27: AttributeError
我错过了什么?
非常感谢对此类测试示例的任何建议。
您应该在 setUp 函数中配置 self.browser。您还缺少 Keys
的导入。代码应该是这样的。
import pytest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from django.contrib.auth.models import Group, Permission, User
from django.test import TestCase, RequestFactory
class CreaPageTest(TestCase):
def setUp(self):
self.factory = RequestFactory()
self.browser = webdriver.Firefox()
另请参阅文档,此处http://selenium-python.readthedocs.org/getting-started.html
我已经创建了测试文件夹,编写了我的第一个测试应该打开浏览器,指向一个页面并登录,然后转到主页。
测试 运行 并按预期失败,但我找不到原因。
browser应该可用,pytest-selenium是通过pip安装的。
import pytest
from django.contrib.auth.models import Group, Permission, User
from django.test import TestCase, RequestFactory
class CreaPageTest(TestCase):
def setUp(self):
self.factory = RequestFactory()
def test_homepage(self):
request = self.client.get('/new')
request.user = self.user
self.assertEqual(request.status_code, 200)
def test_login(self):
request = self.client.get('/per/login')
username_field = self.browser.find_element_by_name('username')
username_field.send_keys('peppa')
password_field = self.browser.find_element_by_name('password')
password_field.send_keys('pig')
password_field.send_keys(Keys.RETURN)
test_homepage()
> username_field = self.browser.find_element_by_name('username')
E AttributeError: 'CreaPageTest' object has no attribute 'browser'
tests/test_ore_app_views.py:27: AttributeError
我错过了什么? 非常感谢对此类测试示例的任何建议。
您应该在 setUp 函数中配置 self.browser。您还缺少 Keys
的导入。代码应该是这样的。
import pytest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from django.contrib.auth.models import Group, Permission, User
from django.test import TestCase, RequestFactory
class CreaPageTest(TestCase):
def setUp(self):
self.factory = RequestFactory()
self.browser = webdriver.Firefox()
另请参阅文档,此处http://selenium-python.readthedocs.org/getting-started.html