我一直在使用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(我使用网络驱动程序的浏览器)会在一段时间后弹出一个模式。
有没有人遇到类似的问题/有关如何解决此问题的任何见解?
答案 0 :(得分:0)
在机器上启动selenium独立服务器时,请尝试使用java命令的-timeout选项。首先尝试将其设置为非常小的值,以验证是否导致问题。可能会把它增加到非常高的水平。