Selenium - TypeError:如果没有抽象方法“command_line_args”的实现,则无法实例化抽象类服务

问题描述 投票:0回答:2

首先我想指出,我是Python和网络抓取的新手,我正在学习如何使用selenium进行网络抓取。

我严格按照有关如何设置的教程进行操作,突然出现错误 - 我在网上搜索修复程序,但找不到。

有人可以帮忙吗?

这是代码截图:

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

python selenium-webdriver web-scraping
2个回答
0
投票

更改此:

from selenium.webdriver.common.service import Service 

致:

from selenium.webdriver.chrome.service import Service

建议:如果你使用的是selenium

v4.6.0 or higher
,则不需要手动设置驱动路径。因此你不需要 Service 类。

代码可以很简单:

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/")

0
投票

你需要这个:

import selenium.webdriver import ChromeService

...因为那是抽象 Service 类的实现

© www.soinside.com 2019 - 2024. All rights reserved.