Python:无法通过脚本启动Selenium Webdriver(Firefox),但它可以通过命令行工作

时间:2013-08-17 02:11:19

标签: php python selenium webdriver

标题说明了一切。我在没有GUI的远程Web服务器上使用webdriver。从命令行,我可以做到这一点,一切正常:

from selenium import webdriver
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800,600))
display.start()
browser = webdriver.Firefox()

即,我可以浏览网页,获取网址,获取源代码以及浏览器实例的所有其他内容。但是尝试在包含相同行的服务器上执行脚本不起作用。脚本通过PHP执行可能是相关的。脚本中的所有内容都会一直运行到browser = webdriver.Firefox() - 也就是说,导入和显示内容都可以正常工作。这只是最后一行;出于某种原因,当脚本尝试执行此操作时,浏览器不希望打开。这没有任何意义,我真的很难过。可能的原因/修复?也许与权限有关?

修改

只是为了澄清,我在远程服务器上做这一切。通过命令行我使用SSH和PUTTY,当我尝试测试脚本时,我只是在网站上进行。

1 个答案:

答案 0 :(得分:1)

通过将包含调用webdriver的Python脚本的文件夹的权限从755更改为757来解决此问题(即,我向所有用户提供了写入权限)。我不确定这是否是我的情况的一个怪癖,因为我忽略了其他东西,或者是否在这里获得了实际的洞察力,但我会说回家的教训是,当在一个不熟悉的服务器上工作时,是否会发生奇怪的事情,检查权限。