标题说明了一切。我在没有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,当我尝试测试脚本时,我只是在网站上进行。
答案 0 :(得分:1)
通过将包含调用webdriver的Python脚本的文件夹的权限从755更改为757来解决此问题(即,我向所有用户提供了写入权限)。我不确定这是否是我的情况的一个怪癖,因为我忽略了其他东西,或者是否在这里获得了实际的洞察力,但我会说回家的教训是,当在一个不熟悉的服务器上工作时,是否会发生奇怪的事情,检查权限。