我想知道是否有一种方法可以将--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实例。这就是为什么我想更改端口。任何帮助都会很棒!
答案 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