硒在很长一段时间后运行的问题

时间:2012-08-01 14:38:47

标签: python firefox selenium web-scraping

我一直在使用Selenium作为刮刀/抓取工具,因为在评估JS之后我需要一个页面的内容。我有五台EC2机器,每台都运行硒,还有一些我写的刮刀实例。

然而,我注意到一些非常奇怪的行为。几个小时后,硒在大约同一时间停在所有机器上。鉴于我在所有服务器上同时启动了硒和刮刀,这让我相信硒在长时间后会出现问题。

这是selenium的日志:

14:34:58.628 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
14:34:58.629 INFO - Version Jetty/5.1.x
14:34:58.630 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
14:34:58.631 INFO - Started HttpContext[/selenium-server,/selenium-server]
14:34:58.631 INFO - Started HttpContext[/,/]
14:34:58.753 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@6a669053
14:34:58.753 INFO - Started HttpContext[/wd,/wd]
14:34:58.764 INFO - Started SocketListener on 0.0.0.0:4444
14:34:58.765 INFO - Started org.openqa.jetty.jetty.Server@2ef36617
21:24:41.031 INFO - Shutting down...

我注意到另一件有趣的事情:在每个集群上,我总是遇到一个带有此错误的scraper实例:

File "SiteScraper.py", line 238, in _add_rendered_html
    self.browser.get(url)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 168, in get
    self.execute(Command.GET, {'url': url})
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 156, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 147, in check_response
    raise exception_class(message, screen, stacktrace)
WebDriverException: Message: u'Modal dialog present'

我认为这意味着selenium或firefox(我使用网络驱动程序的浏览器)会在一段时间后弹出一个模式。

有没有人遇到类似的问题/有关如何解决此问题的任何见解?

1 个答案:

答案 0 :(得分:0)

在机器上启动selenium独立服务器时,请尝试使用java命令的-timeout选项。首先尝试将其设置为非常小的值,以验证是否导致问题。可能会把它增加到非常高的水平。