使用Python API通过Fitnesse(CSlim)调用PhantomJS“路径不可用”

时间:2017-02-13 14:50:13

标签: python c selenium phantomjs fitnesse

我正在尝试在Linux机器上使用Selenium和Fitnesse的组合创建一些自动化测试。我正在使用Selenium和CSlim的Python绑定作为Fitnesse的包装器。

以前我一直使用 system()命令从CSlim调用python文件,例如

system( "python CurrentCommand.py" );

但是,要将Python脚本中的任何输出传递回Fitnesse,需要创建日志文件。为了改进,我在CSlim中使用了C Python API(2.63),这样我就可以在不使用 system()或创建日志文件的情况下调用Python代码。

虽然我在一个简单的C文件中完美地工作,但是当完全相同的代码粘贴到夹具中并从Fitnesse调用时,我收到以下错误:

  File "/home/dm1506/test_centre/fitnesse/selenium/run_selenium/SeleniumTestLib.py", line 93, in <module>
    driver = webdriver.PhantomJS(service_args=['--ignore-ssl-errors=true', '--ssl-protocol=TLSv1'])

  File "/usr/lib/python2.6/site-packages/selenium-2.53.6-py2.6.egg/selenium/webdriver/phantomjs/webdriver.py", line 52, in __init__
    self.service.start()

  File "/usr/lib/python2.6/site-packages/selenium-2.53.6-py2.6.egg/selenium/webdriver/common/service.py", line 83, in start
    (os.path.basename(self.path), self.start_error_message, str(e)))

  selenium.common.exceptions.WebDriverException: Message: The executable phantomjs needs to be available in the path. 

  [Errno 10] No child processes

我可以毫无问题地调用python代码,但由于某种原因它无法再看到PhantomJS可执行文件。虽然它肯定在路径中,但我已经打印了来自Fitnesse的Python实例的路径,并且可以看到PhantomJS包含在其中。在调用PhantomJS时,我也试过给出明确的路径,即

driver = webdriver.PhantomJS(executable_path='/path/to/phantomjs-1.9.2-linux-x86_64/bin/phantomjs')

但这也不起作用。有没有人遇到类似的问题或知道可能导致这个问题的原因?

0 个答案:

没有答案