有什么办法可以改变webdriver的端口吗?

时间:2019-08-20 18:39:06

标签: python python-3.x selenium firefox webdriver

我想知道是否有一种方法可以将--port参数传递给Webdriver。

我已经尝试过:

driver = webdriver.Firefox(options=options, service_args=['--marionette-port','<PORT>', '--port', '<PORT>'])

,但是当我添加--port参数时,它似乎不起作用。它仅适用于--marionette-port

如果您在终端上输入:geckodriver --help,将会看到所有这些选项:

选项

  

-b,--binary Firefox二进制文件的路径
  --log设置Gecko日志级别[可能的值:致命,错误,警告,信息,配置,调试,跟踪]
  --marionette-host用于连接到Gecko的主机(默认值:127.0.0.1)
  --marionette-port用于连接到Gecko的端口(默认:系统分配的端口)
  --host用于WebDriver服务器的主机ip(默认值:127.0.0.1)
   -p,--port用于WebDriver服务器的端口(默认:4444)

我已经在另一个脚本中运行一个webdriver实例。这就是为什么我想更改端口。任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

WebDriver服务器的端口(即geckodriver --port)由传递给Service(port=)的参数控制。默认情况下,它会选择一个随机端口,因此不应同时运行两个脚本。

在当前稳定的Python客户端版本(2018年11月发布的3.141.0)中,webdriver.Firefox()(与Chrome版本不同)不允许指定端口。

在即将发布的版本中,它将:

#  $ pip install selenium==4.0.0a1
from selenium import webdriver

service = webdriver.firefox.service.Service('geckodriver', port=1234)
driver = webdriver.Firefox(service=service)
driver.get('https://stackoverflow.com/')

#   $ ps -ef |grep geckodr
#  501 62518 62510   0  6:22PM ttys010    0:00.02 geckodriver --port 1234