Python Selenium在服务器上不工作,因为它在本地计算机上工作

Python Selenium在服务器上不工作,因为它在本地计算机上工作,python,selenium,centos,pyvirtualdisplay,Python,Selenium,Centos,Pyvirtualdisplay,我最近完成了我的Selenium Python刮刀。当我在我的个人电脑上运行它时,它工作得非常好,但是当我在服务器上运行它时,结果不一样。在服务器上,我使用pyvirtualdisplay browser.get('https://example.com') html = browser.page_source 这是我的pyvirtualdisplay代码 display = Display(visible=0, size=(800, 600)) display.start() 在本地机

我最近完成了我的Selenium Python刮刀。当我在我的个人电脑上运行它时,它工作得非常好,但是当我在服务器上运行它时,结果不一样。在服务器上,我使用
pyvirtualdisplay

browser.get('https://example.com')  
html = browser.page_source
这是我的pyvirtualdisplay代码

display = Display(visible=0, size=(800, 600))
display.start()
在本地机器上运行时,它完全捕获JavaScript生成的HTML,但当我在服务器上运行时,它不会捕获JavaScript生成的HTML内容,因此我只得到一个部分页面,其中没有JS生成的内容

更新:
我还使用Selenium根据建议拍摄了屏幕截图。屏幕截图显示页面部分加载,而JS的内容没有加载到屏幕上。

这听起来像是操作系统或浏览器配置的问题。你应该做的第一件事是在你的帧缓冲区中截屏结果,并确保firefox正确加载JS内容。如果不是,则可能需要检查浏览器/OS配置

pyvirtualdisplay有一种屏幕截图方式,您可以查看

specflow还可以提供屏幕截图、说明


如果是FireFox/浏览器问题,请确保已安装在服务器上运行javascript所需的所有正确插件和Java。确保该浏览器已启用javascript

浏览器是如何定义的?谢谢。@alecxe
browser=webdriver.Firefox()
在服务器上,它是在实际的GUI上运行还是在帧缓冲区(无头)中运行?我以前遇到过类似的问题,可能有很多问题。您的帧缓冲区使用什么?你还可以包括你用来在服务器上运行测试的命令吗?你还可以包括一个例子,说明你期望得到什么和你实际得到什么?我也有一个Ubuntu服务器。这是我第一次在那台服务器上测试脚本,它工作得完美无缺。但当我再次运行脚本时,它并没有像CentOS服务器上那样处理相同的问题。在CentOS服务器上,它甚至一次都不工作。谢谢你推荐截图。我正在调查并会通知你。所以正如你所建议的,我也拍了一些截图。屏幕截图显示页面已部分加载,而JS的内容未加载。@abhanan93,因此问题不在这里。这是你的操作系统,你的帧缓冲区,还是你的浏览器?那么你有什么建议?更新答案以反映建议