一尘不染

使用xvfb + PyCharm + vagrant设置测试

selenium

我有这样的环境:

  • 在Mac OS X上运行的PyCharm
  • 在流浪汉实例中的Ubuntu3.4上运行的Python3.4环境

我希望能够使用PyCharm运行/调试测试。到目前为止,我可以做到,但是最近我在测试中添加了selenium,现在我需要在 xvfb-run
remote命令中包装python解释器。我尝试添加远程外部工具,但无法使其正常工作。我找到了这个人,但他并没有很好地解释他是如何做到的。任何想法将不胜感激:-)


阅读 323

收藏
2020-06-26

共1个答案

一尘不染

由于有了这个答案,我无需添加外部工具即可解决问题。脚步:

  • 在远程python环境上安装xvfbwrapper
  • 代码示例:
        from selenium.webdriver.firefox.webdriver import WebDriver
    from django.contrib.staticfiles.testing import StaticLiveServerTestCase
    from xvfbwrapper import Xvfb

    class UITestCase(StaticLiveServerTestCase):
        fixtures = ['data.json']

        @classmethod
        def setUpClass(cls):
            cls.vdisplay = Xvfb()
            cls.vdisplay.start()
            cls.selenium = WebDriver()
            cls.selenium.implicitly_wait(3000)
            super(UITestCase, cls).setUpClass()

        @classmethod
        def tearDownClass(cls):
            cls.selenium.quit()
            cls.vdisplay.stop()
            super(UITestCase, cls).tearDownClass()

        def test_list(self):
            self.selenium.get('%s%s' % (self.live_server_url, '/#/app'))

            count = len(self.selenium.find_elements_by_xpath('//*[@id="data"]/tbody/tr'))
            self.assertEqual(count, 2)
  • 无需更改测试配置(假设它已经成功运行)
2020-06-26