【发布时间】:2014-06-18 10:16:04
【问题描述】:
我正在尝试运行一个 python 脚本,在该脚本中我打开一个网页并单击某个元素。但该脚本运行速度非常慢并给出随机异常。
大多数情况下它会停在一行 driver = webdriver.Firefox()
消息-
selenium.common.exceptions.WebDriverException:消息:'无法加载配置文件。配置文件 ?Dir:/tmp/tmp4liaEq Firefox 输出:Xlib:显示“:1733”上缺少扩展名“RANDR”。\n1403086712970\taddons.xpi\tDEBUG\tstartup\n1403086713204\taddons.xpi\tDEBUG\tcheckForChanges\n1403086713568\taddons。 xpi\tDEBUG\t未发现更改\n'
有时——
driver.find_element_by_xpath("//a[@id='some_id']")
返回元素不可见因此无法点击的错误。
相同的脚本在我有 4GB RAM 的系统上运行顺畅。 (EC2 系统规格 ~ 600mb 内存)
我尝试查看系统并返回“top”命令 -
604332k total, 577412k used, 26920k free, 6616k buffers
我已经安装了 firefox 和 xvfb,因为我正在无头运行 firefox
【问题讨论】:
-
@vipul 知道可能是什么问题吗?
-
能否将代码添加到问题中?
-
有时驱动程序会在页面完全加载之前尝试单击一个元素,在这种情况下该元素不可见。为了让页面在单击元素之前完全加载,我们使用显式等待(在 selenium 文档中给出)或只是一个简单的
time.sleep。停在driver = webdriver.Firefox()的代码看起来很奇怪。尝试重新安装 selenium 可能是您的版本有问题:pip install -U selenium -
已经尝试了所有这些方法,但仍然面临同样的问题! Selenium 已经是最新的,Firefox 版本是 30.0
-
请在问题中添加代码,然后我会尝试在我的机器上运行它
标签: python firefox selenium amazon-web-services amazon-ec2