我想用Selenium包创建一些Django测试。
以下是简单的测试:
import unittest
from selenium import webdriver
class TestSignup(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
def test_signup_fire(self):
self.driver.get("http://localhost:8000/add/")
self.driver.find_element_by_id('id_title').send_keys("test title")
self.driver.find_element_by_id('id_body').send_keys("test body")
self.driver.find_element_by_id('submit').click()
self.assertIn("http://localhost:8000/", self.driver.current_url)
def tearDown(self):
self.driver.quit
if __name__ == '__main__':
unittest.main()
但是我接受了这个错误:
TypeError: environment can only contain strings
在这一行:
self.driver = webdriver.Firefox()
我不知道为什么,任何想法如何解决这个错误?
正如您所看到的错误:
TypeError: environment can only contain strings
在线:
self.driver = webdriver.Firefox()
这实质上意味着在更新环境变量中的路径时会出现一些配置错误。要禁止您可以使用geckodriver
二进制位置提供参数,如下所示:
self.driver = webdriver.Firefox(executable_path=r'C:\path\to\geckodriver.exe')