首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >selenium.common.exceptions.WebDriverException:消息:在Raspberry-pi3中试图通过GeckoDriver打开火狐浏览器时,连接被拒绝

selenium.common.exceptions.WebDriverException:消息:在Raspberry-pi3中试图通过GeckoDriver打开火狐浏览器时,连接被拒绝
EN

Stack Overflow用户
提问于 2018-05-12 00:52:34
回答 2查看 1.6K关注 0票数 1

嗨,我有一个raspberry pi 3,并决定尝试使用python3运行selenium,我使用"pip3 installed“安装它,没有出现错误。在我用下面的代码做了一个小测试脚本之后:

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

# create a new Firefox session
driver = webdriver.Firefox()
driver.implicitly_wait(30)
driver.maximize_window()

# Navigate to the application home page
driver.get("http://www.google.com")

# get the search textbox
search_field = driver.find_element_by_id("lst-ib")
search_field.clear()

# enter search keyword and submit
search_field.send_keys("Selenium WebDriver Interview questions")
search_field.submit()

# get the list of elements which are displayed after the search
# currently on result page using find_elements_by_class_name method
lists= driver.find_elements_by_class_name("_Rm")

# get the number of elements found
print ("Found " + str(len(lists)) + " searches:")

# iterate through each element and print the text that is
# name of the search

i=0
for listitem in lists:
   print (listitem.get_attribute("innerHTML"))
   i=i+1
   if(i>10):
      break

# close the browser window
driver.quit()

但它给了我一个错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/home/pi/SeleniumTest.py", line 5, in <module>
    driver = webdriver.Firefox()
  File "/home/pi/.local/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__
    keep_alive=True)
  File "/home/pi/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 156, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/pi/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 245, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/pi/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 314, in execute
    self.error_handler.check_response(response)
  File "/home/pi/.local/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: connection refused

感谢您的帮助,谢谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-12 07:41:16

这个错误信息..。

代码语言:javascript
复制
selenium.common.exceptions.WebDriverException: Message: connection refused

...implies表示GeckoDriver无法成功启动/生成新的Web客户端会话/实例。

您正在使用的二进制文件的版本信息可能会让我们更深入地了解您所观察到的错误。

但是,在初始化executable_path和WebBrowser时,您可能需要将键WebDriver与引用GeckoDriver绝对路径的值一起作为参数传递,如下所示:

代码语言:javascript
复制
from selenium import webdriver

# create a new Firefox session
driver = webdriver.Firefox(executable_path=r'/path/to/geckodriver')

补充建议

  • 将Selenium升级到当前级别Version 3.11.0
  • 将GeckoDriver升级到GeckoDriver v0.20.1级别。
  • 如参数executable_path.所述,确保GeckoDriver位于指定的位置
  • 确保GeckoDriver具有非根用户的可执行权限。
  • 将火狐版本升级到火狐v59.0.2级别。
  • 通过IDE清理项目工作区,并仅使用所需的依赖项重新构建项目。
  • 使用https://www.ccleaner.com/ccleaner工具在执行测试套件之前和之后清除所有操作系统杂务。
  • 如果您的基本Web客户端版本太旧,那么通过https://www.revouninstaller.com/revo_uninstaller_free_download.html卸载它,并安装最新的GA和发布版本的Web。
  • 重新启动系统。
  • 以非根用户的身份执行Test
  • 始终在tearDown(){}方法中调用tearDown(){}来关闭和销毁WebDriver和WebDriver实例。
票数 0
EN

Stack Overflow用户

发布于 2018-05-12 01:04:34

您需要安装geckodriver,这是必需的,我不知道apt是否可用,但如果不是,您可以从GitHub https://github.com/mozilla/geckodriver/releases的官方发布页面下载该版本

如果需要手动安装,请将可执行的geckodriver解压缩到路径中的目录,通常是/usr/local/bin或'$HOME/bin`‘

编辑:另一个可能的原因是在SSH上运行selenium,在这个场景中,您的RPi将没有一个显示器来附加火狐窗口,它会崩溃,要解决这个问题,您需要像这样在无头模式下运行火狐:

代码语言:javascript
复制
# create a new Firefox session
opt = webdriver.FirefoxOptions()
opt.set_headless()
driver = webdriver.Firefox(options=opt)
# here instead of maximize you have to set a custom size
driver.set_window_size(1920, 1080)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50301920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档