Selenium远程WebDriver错误(连接被拒绝)

4
from selenium import webdriver
import sys
import os
cwd = os.getcwd()
driver= webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.CHROME,command_executor='http://127.0.0.1:4444')
driver.get('http://www.google.com')

错误:

urllib.error.URLError: <urlopen error [Errno 61] Connection refused>

这个程序之前可以正常工作,但现在无法运行。因此我认为这是系统错误。(OSX 10.13.4)

2个回答

3

请确保您已启动Selenium独立服务器

java -jar /path/to/selenium-server-standalone-<version>.jar 

你应该看到类似这样的输出:

Jun 06, 2018 6:47:59 PM org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
18:47:59.720 INFO - Java: Oracle Corporation 24.171-b02
18:47:59.722 INFO - OS: Linux 3.13.0-149-generic amd64
18:47:59.731 INFO - v2.13.0, with Core v2.13.0. Built from revision 14793
18:47:59.889 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
18:47:59.891 INFO - Version Jetty/5.1.x
18:47:59.892 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
18:47:59.893 INFO - Started HttpContext[/selenium-server,/selenium-server]
18:47:59.893 INFO - Started HttpContext[/,/]
18:47:59.915 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@6c15f918
18:47:59.915 INFO - Started HttpContext[/wd,/wd]
18:47:59.919 INFO - Started SocketListener on 0.0.0.0:4444
18:47:59.919 INFO - Started org.openqa.jetty.jetty.Server@606145c5

请注意,特别是这一行:

RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub

command_executor 中使用此 URL:

from selenium import webdriver

driver = webdriver.Remote(
    desired_capabilities=webdriver.DesiredCapabilities.CHROME,
    command_executor='http://127.0.0.1:4444/wd/hub')
driver.get('http://www.google.com')

0
根据 API 文档远程 WebDriver 实现如下:
class selenium.webdriver.remote.webdriver.WebDriver(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=None, browser_profile=None, proxy=None, keep_alive=False, file_detector=None, options=None)

一个例子

# Instantiate an instance of Remote WebDriver with the desired capabilities.
driver = webdriver.Remote(desired_capabilities=capabilities, command_executor=selenium_grid_url)    

所以你需要将代码行更改为:

driver= webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.CHROME,command_executor='http://127.0.0.1:4444')

给:

driver= webdriver.Remote(desired_capabilities=DesiredCapabilities().CHROME,command_executor='http://127.0.0.1:4444')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接