无法在Amazon EC2上运行python selenium webdriver脚本
我正在尝试运行一个Python脚本,这个脚本会打开一个网页并点击某些元素。但是,脚本运行得非常慢,还时不时出现一些随机的错误。
大多数情况下,它在这一行卡住了:
driver = webdriver.Firefox()
错误信息是:
selenium.common.exceptions.WebDriverException: 信息: '无法加载配置文件。配置文件目录: /tmp/tmp4liaEq Firefox 输出: Xlib: 显示 ":1733" 上缺少扩展 "RANDR"。\n1403086712970\taddons.xpi\t调试\t启动\n1403086713204\taddons.xpi\t调试\t检查更改\n1403086713568\taddons.xpi\t调试\t未发现更改\n'
有时候,
driver.find_element_by_xpath("//a[@id='some_id']")
会返回一个错误,提示这个元素不可见,所以无法点击。
同样的脚本在我有4GB内存的系统上运行得很顺利。(EC2系统的规格大约是600MB内存)
我尝试查看系统情况,使用“top”命令返回的结果是:
604332k 总共, 577412k 已使用, 26920k 空闲, 6616k 缓冲区
我已经安装了Firefox,并且因为我是在无头模式下运行Firefox,所以还安装了xvfb。
1 个回答
0
我也遇到过同样的问题。
以管理员身份运行脚本解决了这个问题。
另外,让一个用户拥有sudo权限也有效。