我有一个非常简单的selenium脚本在树莓派上运行。
我遇到了特定页面无法加载的问题,因此我希望将driver.get(url)
上的超时时间缩短为15秒,以防止事情挂起。我使用这篇文章作为如何设置该信息的指南。 How to set Selenium Python WebDriver default timeout?
我得到一个奇怪的错误,说明当我明显传递号码时我没有传递号码
>>> from selenium import webdriver
>>> from pyvirtualdisplay import Display
>>>
>>> display = Display(visible=0, size=(1200, 1200))
>>> display.start()
<Display cmd_param=['Xvfb', '-br', '-nolisten', 'tcp', '-screen', '0', '1200x1200x24', ':1009'] cmd=['Xvfb', '-br', '-nolisten', 'tcp', '-screen', '0', '1200x1200x24', ':1009'] oserror=None return_code=None stdout="None" stderr="None" timeout_happened=False>
>>> driver = webdriver.Firefox()
>>> driver.set_page_load_timeout(15)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/pi/Projects/yesware_prod/yesware/venv/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 727, in set_page_load_timeout
'pageLoad': int(float(time_to_wait) * 1000)})
File "/home/pi/Projects/yesware_prod/yesware/venv/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 238, in execute
self.error_handler.check_response(response)
File "/home/pi/Projects/yesware_prod/yesware/venv/local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 193, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Not a Number
我不确定问题是什么。即使我确认我传递了一个整数,我仍然会收到错误
>>> num_secs = 15
>>> type(num_secs)
<type 'int'>
>>> driver.set_page_load_timeout(num_secs)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/pi/Projects/yesware_prod/yesware/venv/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 727, in set_page_load_timeout
'pageLoad': int(float(time_to_wait) * 1000)})
File "/home/pi/Projects/yesware_prod/yesware/venv/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 238, in execute
self.error_handler.check_response(response)
File "/home/pi/Projects/yesware_prod/yesware/venv/local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 193, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Not a Number
这是指向github页面的链接 - https://github.com/SeleniumHQ/selenium/blob/fa24958570432ee6eadaadc9a7fb92e1ee380dfc/py/selenium/webdriver/remote/webdriver.py#L714
编辑我最终使用PhantomJS()
而不是Firefox()
找到了解决方法。本教程非常棒 - How to install PhantomJS for use with Python Selenium on the Raspberry Pi?
答案 0 :(得分:0)
您应该更新您的firefox版本,或降级您的selenium和geckodriver版本。