Selenium — TypeError: невозможно создать экземпляр абстрактного класса Service без реализации абстрактного метода «command_line_args»

Во-первых, я хочу отметить, что я новичок в Python и парсинге веб-страниц, и я учился парсить веб-страницы с помощью селена.

Я точно следовал руководству по его настройке, и внезапно возникла ошибка: я искал исправления в Интернете, но не смог их найти.

Кто-нибудь может помочь?

вот скриншот кода:

https://i.sstatic.net/WXkIGRwX.png

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
85
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ты нуждаешься в этом:

import selenium.webdriver import ChromeService

...потому что это реализация абстрактного класса Service

Ответ принят как подходящий

Измените это:

from selenium.webdriver.common.service import Service 

К:

from selenium.webdriver.chrome.service import Service

Предложение: если вы используете селен v4.6.0 or higher, вам не нужно вручную устанавливать путь к драйверу. Значит вам не нужен Класс обслуживания .

Код может быть таким простым, как:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.google.com/")
driver.quit()

Ссылка: https://stackoverflow.com/a/76463081/7598774

ОБНОВЛЕНИЕ: Если вы не хотите, чтобы ваш браузер автоматически закрывался после выполнения кода, вам необходимо отсоединить браузер от объекта driver. Проверьте код ниже.

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=options)
driver.get("https://www.google.com/")

Да, это сработало, но теперь страница почему-то открывается и тут же снова закрывается. Есть предположения, почему?

Nikola Bozhkov 29.05.2024 16:56

Надеюсь, у вас нет driver.quit() в конце кода? Если нет, то вам нужно отсоединить браузер от driver. Проверьте обновленный ответ.

Shawn 29.05.2024 17:03

Ок, после установки вашего обновления все работает без нареканий, большое спасибо

Nikola Bozhkov 29.05.2024 17:12

Другие вопросы по теме