Python + Selenium + PhantomJS =>使用本地开发服务器加载和呈现页面时出现问

时间:2015-04-01 16:08:12

标签: python selenium phantomjs

我在加载页面时保存了屏幕截图。如果我用生产测试它,它可以正常工作(页面正确呈现)。 ,如果我使用本地开发服务器进行测试,则在检查屏幕截图时页面无法正确呈现。 缺少某些元素(HTML,图片)。

问题是PhantomJS。如果我使用Firefox,它可以正常工作。但我需要“无头”,因为这是一项要求。

我使用的是Python 2.7.6 + Selenium 2.45.0 + PhantomJS 1.9.8(OS X Yosemite 10.10)。

代码

import unittest
import time

from selenium import webdriver

class Test(unittest.TestCase):

    HEADLESS = 1
    DEVELOPMENT = 1

    def setUp(self):

        if self.HEADLESS:
             self.driver = webdriver.PhantomJS()
             self.driver.set_window_size(1400, 1200)
         else:
             self.driver = webdriver.Firefox()
             self.driver.maximize_window()

        self.driver.implicitly_wait(100)

        url = 'http'
        if self.DEVELOPMENT:
            url += '://development.localhost.lan:3000/login'
        else:
            url += 's://PRODUCTION_WEB.com/login'

        self.driver.get(url)
        time.sleep(10)
        self.driver.save_screenshot('login.png')

    def tearDown(self):
        print 'tearDown'

    def test_import(self):
        print 'test_import'

if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(Test)
    unittest.TextTestRunner(verbosity=2).run(suite)

另外,我已经测试了以下内容,没有结果:

  • service_args = [' - 本地至远程URL的访问=真']
  • service_args = [' - ignore-ssl-errors = true'] :(生产是http s
  • 设置user_agent
  • 启用/禁用Cookie
  • 激活localToRemoteUrlAccessEnabled

拜托,有人可以给我任何建议吗?提前谢谢!

0 个答案:

没有答案