将Selenium驱动程序连接到现有Chrome浏览器实例时出错

2024-04-19 14:03:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在关注这个教程(下面的链接),但是发生了一个错误,我不知道如何解决它

https://medium.com/@harith.sankalpa/connect-selenium-driver-to-an-existing-chrome-browser-instance-41435b67affd

我正在尝试使用打开的浏览器执行搜索,因为它已登录到我需要的帐户

在执行下面的代码之后,我正在使用chrome --remote-debugging-port=1024打开chrome

我找到了一些解决方案,但没有一个解决了我的问题,要么是因为解决方案是用Java编写的,我不懂,要么是我不知道如何用python重写

代码:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options as ChromeOptions
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

if __name__ == '__main__':
    options = ChromeOptions()
    options.add_argument('start-maximized')
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('--remote-debugging-port=1024')
    options.add_argument('--disable-setuid-sandbox')
    options.add_experimental_option("debuggerAddress", "localhost:1024")
    options.binary_location = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"

    d = DesiredCapabilities.CHROME
    d["loggingPrefs"] = {"browser": "ALL"}

    driver = webdriver.Chrome(
        executable_path=ChromeDriverManager().install(),
        options=options,
        desired_capabilities=d
    )

    driver.get("https://google.com.br")

错误:

Traceback (most recent call last):
  File "C:/Users/danit/Desktop/project/main.py", line 22, in <module>
    desired_capabilities=d
  File "C:\Users\danit\Desktop\project\venv\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "C:\Users\danit\Desktop\project\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Users\danit\Desktop\project\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Users\danit\Desktop\project\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\danit\Desktop\project\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at localhost:1024
from chrome not reachable

非常感谢


Tags: inpyprojectaddremoteseleniumlinechrome
1条回答
网友
1楼 · 发布于 2024-04-19 14:03:59

错误表明无法访问chrome。很可能该实例已被删除

我展示了一个简单的方法来保存会话数据(将保存所有cookie),然后从该实例加载selenium

看下面的例子


from selenium.webdriver.chrome.options import Options
from selenium import webdriver

session = "mySession"
chrome_driver_path = '/home/aahnik/Downloads/apps/chromedriver'
whatsapp_web_url = "https://web.whatsapp.com/"

chrome_options = Options()
chrome_options.add_argument(f' user-data-dir={session}')

driver = webdriver.Chrome(
    options=chrome_options, executable_path=chrome_driver_path)

driver.get(whatsapp_web_url)

现在执行这段代码。WhatsApp网站将开放。通过扫描二维码登录

现在关闭窗口,然后终止程序

现在将在当前用户目录中看到名为mySession的文件夹。

再次执行此代码

这次您会发现您已经登录到WhatsApp。

希望这有帮助

相关问题 更多 >