Setup a phantomjs Selenium driverΒΆ
The PhantomJS
fixture starts a
phantomjs service in the background and exposes it via its
webdriver
attribute, which can then be used by test cases for
Selenium-based assertions:
>>> from fixtures import FakeLogger
>>> from testtools import TestCase
>>> from txfixtures import Reactor, Service, PhantomJS
>>> TWIST_COMMAND = "twistd -n web".split(" ")
>>> class HTTPServerTest(TestCase):
...
... def setUp(self):
... super().setUp()
... self.logger = self.useFixture(FakeLogger())
... self.useFixture(Reactor())
...
... # Create a sample web server
... self.service = Service(TWIST_COMMAND)
... self.service.expectPort(8080)
... self.useFixture(self.service)
...
... self.phantomjs = self.useFixture(PhantomJS())
...
... def test_home_page(self):
... self.phantomjs.webdriver.get("http://localhost:8080")
... self.assertEqual("Twisted Web Demo", self.phantomjs.webdriver.title)
>>> test = HTTPServerTest(methodName="test_home_page")
>>> test.run().wasSuccessful()
True