如何使用Selenium与已经打开的浏览器进行交互?

How to interact using Selenium with already opened browser?

提问人:Dr.PB 提问时间:10/2/2022 最后编辑:Dr.PB 更新时间:10/3/2022 访问量:560

问:

直到几天前,什么工作得很完美:

使用以下命令打开浏览器:"C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" --remote-debugging-port=9222

然后在python中,我使用请求检查响应状态代码(应该是)。200GEThttp://localhost:9222

然后附上硒:

options = Options()
options.binary_location = "C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe"
options.add_argument("disable-popup-blocking")
options.add_experimental_option("debuggerAddress",
        socket.gethostbyname("localhost:9222")
driver = webdriver.Chrome(ChromeDriverManager().install(), options = options)

但是,此设置不再起作用,因为现在无法通过新的更新访问任何内容。http://localhost:9222

知道如何实现相同的目标吗?

selenium selenium-chromedriver chrome-remote-debugging

评论


答:

0赞 AbiSaran 10/2/2022 #1

试试这段代码,它正在工作:

在命令提示符下运行以下命令:

"C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe" --remote-debugging-port=9222 --user-data-dir="C:\\Temp\\BraveData"

将启动 Brave 浏览器,然后使用以下代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from webdriver_manager.core.utils import ChromeType

options = Options()
options.add_experimental_option("debuggerAddress", "localhost:9222")

driver = webdriver.Chrome(service=Service(ChromeDriverManager(chrome_type=ChromeType.BRAVE).install()), options = options)