【发布时间】:2016-02-24 16:02:59
【问题描述】:
我有一个脚本需要通过 selenium 与网页交互。我需要使用某种虚拟显示器来防止浏览器出现。
在我将 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,但问题似乎与页面加载缓慢无关。有什么想法吗?
【问题讨论】:
-
er...您的标签错误:您似乎使用的是 splinter(splinter.readthedocs.org/en/latest),而不是 selenium python 绑定 (selenium-python.readthedocs.org/getting-started.html)。
-
@KirilS。著名的。 Splinter 通过 selenium 发挥神奇作用,所以事情的根源是硒问题
标签: python selenium xvfb splinter