exu*_*ero 5 python django selenium
我有一个Django项目,我正在尝试用Selenium编写浏览器交互测试.我的目标是从Hudson/Jenkins自动化测试.到目前为止,我能够让测试点击Django服务器,但是从服务器日志中我看到它正在点击url /selenium-server/driver
而不是正确的路径.
这是我的代码(基于Firefox的Selenium IDE插件生成的代码:
from selenium import selenium
class AccountAdminPageTests(unittest.TestCase):
def setUp(self):
self.selenium = selenium("localhost",
8000,
"*chrome",
"http://localhost:8000/")
self.selenium.start()
self.selenium.open("/")
def test_ok(self):
self.assertTrue(self.selenium.is_text_present('OK'))
def tearDown(self):
self.selenium.stop()
if __name__ == "__main__":
unittest.main()
Run Code Online (Sandbox Code Playgroud)
有线索吗?
从未见过确切的错误,但我认为Selenium正在尝试连接到您的应用而不是selenium Server(.jar文件).
selenium服务器的端口应该是selenium()的第一个参数
这应该默认为端口4444,您可能必须启动它
$ java -jar selenium-server.jar
Run Code Online (Sandbox Code Playgroud)
FWIW这是我如何在CI服务器上运行selenium测试...
from multiprocessing import Process
from django.test import TestCase
from selenium import selenium
class SeleniumFixtureCase(TestCase):
"""
Wrapper to multiprocess localhost server and selenium instance on one
test run.
"""
def setUp(self):
"Make the selenium connection"
TestCase.setUp(self)
self.server = Process(target=serve)
self.server.start()
self.verificationErrors = []
self.selenium = selenium("localhost", 4444, "*firefox",
"http://localhost:8000/")
self.selenium.start()
def tearDown(self):
"Kill processes"
TestCase.tearDown(self)
self.server.terminate()
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
def _login(self):
"Login as Albert Camus"
self.selenium.open("http://localhost:8000/admin/")
self.selenium.wait_for_page_to_load("30000")
self.selenium.type("id_username", "albert")
self.selenium.type("id_password", "albert")
self.selenium.click("//input[@value='Log in']")
self.selenium.wait_for_page_to_load("30000")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6981 次 |
最近记录: |