Я пытаюсь использовать Selenium 4 для некоторой автоматизации расширения веб-браузера. В настоящее время я использую его только с драйвером Microsoft Edge. Я обнаружил, что не могу открыть какое-либо расширение Edge, Firefox или Chrome. (Используя Vb.net)
Вот мой код:
Imports OpenQA.Selenium
Imports OpenQA.Selenium.Edge
Imports OpenQA.Selenium.Support.UI
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim options As New EdgeOptions()
options.AddArgument("--user-data-
dir=C:\Users\jasonfan\AppData\Local\Microsoft\Edge\User Data")
options.AddArgument("--no-sandbox")
options.AddArgument("--remote-debugging-pipe")`
options.AddArgument("--allow-running-insecure-content")
options.AddArgument("--ignore-certificate-errors")
Dim driver As IWebDriver = New EdgeDriver(options)
driver.Navigate().GoToUrl("chrome-extension://odphnbhiddhdpoccbialllejaajemdio/options.html")
End Sub
End Class
Фактически, когда это было выполнено, это ("chrome-extension://odphnbhiddhdpoccbialllejaajemdio/options.html") не будет открыто. Но я могу без проблем перейти на эту страницу вручную. Это означает, что путь расширения правильный. Но это не работает при использовании кода для автоматического открытия. Есть ли у кого-нибудь идеи?
Кстати, сейчас я использую платформу Windows 11. Обе мои версии Microsoft Edge и WebDriver — 128.0.2739.42.
Первоначально, когда я пытаюсь перейти на веб-страницу с помощью WebDriver, я получаю ошибку ERR_BLOCKED_BY_CLIENT и DevTools, прослушивающие сообщение об ошибке ws://127.0.0.1:13787/devtools/browser/4f6b659e-9f69-4303-a63e-8cc8b91e44f6.
Я пробовал игнорировать ошибки сертификатов, используя аргумент --ignore-certificate-errors , но, похоже, это не сработало. Я также попробовал отключить DevTools и настроить уровень журнала, но проблема не устранена.
Пока я не добавлю следующую строку кода, сообщение об ошибке исчезнет: options.AddArgument("--remote-debugging-pipe")
Но моя цель — включить некоторые функции расширения. Итак, я попробовал и попробовал еще раз. Это никогда не работало.
Надеюсь, кто-нибудь сможет помочь.
Код действительно работает. Просто убедитесь, что вы завершили все задачи msedge.exe, прежде чем запускать этот проект. Вы можете использовать диспетчер задач или taskkill /f /im msedge.exe
в CMD, чтобы завершить оставшиеся задачи.
@JasonFan На самом деле эта ошибка не повлияет на автоматизацию, поэтому вы можете просто игнорировать ее. Или вы можете добавить options.AddArgument("log-level=3")
, чтобы скрыть их.
Вы определенно правы! Большое спасибо.
Большое спасибо. Я сделал это в CMD, и все работает! Но снова возникает такая ошибка: ... Microsoft Edge WebDriver успешно запущен. msedgedriver успешно запущен на порту 4648. [18064:18060:0829/134219.490:ОШИБКА:interface_endpoint_client.cc(722)] Сообщение 0 отклонено интерфейсомblink.mojom.WidgetHost [2200:10460:0829/134221.964:ERROR:ss l_client_socket_impl. cc(1048)] не удалось выполнить рукопожатие; возвращено -1, код ошибки SSL 1, net_error -113 [2200:10460:0829/134221.996:ERROR:ssl_client_socket_impl.cc(1048)] не удалось установить соединение; возвращено -1, код ошибки SSL 1, net_error -113