我有一个脚本,需要通过硒与网页互动。我需要使用某种虚拟显示来防止浏览器出现。你知道吗
在我将Xvfb引入到混合中之前,脚本作为一个整体工作得很好。当我这样做的时候,当我第一次真正尝试与页面交互时,我会得到一个ElementNotVisibleException
。你知道吗
我试过用xvfbwrapper
和pyvirtualdisplay
来达到同样的效果。你知道吗
下面是不起作用的代码:
from xvfbwrapper import Xvfb
vdisplay = Xvfb()
vdisplay.start()
oBrowser = Browser()
oBrowser.visit(sUrl)
oBrowser.find_by_id('some_field')[0].fill(sValue) #<--ERROR
vdisplay.stop()
下面的代码确实有效(但会显示浏览器):
oBrowser = Browser()
oBrowser.visit(sUrl)
oBrowser.find_by_id('some_field')[0].fill(sValue) #<--works every time
那么如何在虚拟显示器上运行代码呢?你知道吗
在尝试填充字段之前,我尝试过做time.sleep
,但问题似乎与页面加载缓慢无关。有什么想法吗?你知道吗
这是一种解决方法,而不是直接的解决方案:
我替换了这行:
有了这个:
而且工作可靠。我还是不知道为什么它一开始就不起作用。你知道吗
相关问题 更多 >
编程相关推荐