1.首先安装Chrome浏览器和chromedriver
参考这篇文章
(24年4月2日更新)Linux安装chrome及chromedriver(Ubuntu20.04&16.04)_linux安装chromedriver-CSDN博客
记得要给chromedriver添加权限
sudo chmod a+x /usr/bin/chromedriver 路径填自己实际的路径
2.编写selenium.webdriver相关代码
这里为了直接使用方便,Chrome浏览器和Chromedriver驱动,直接在代码中以绝对路径的形式写上。
整体的代码在最后,可以参考哦!
2.1 怎么查找Chrome安装的路径或者Chromedriver安装的路径
使用whereis 软件名 进行查看
参考链接:如何查找Linux系统中软件的安装位置? (linux查询软件位置) – 后浪云
3.遇到的问题
3.1WebDriverException: Message: unknown error: cannot find Chrome binary
解决方法:
WebDriverException: Message: unknown error: cannot find Chrome binary解决方法-CSDN博客
3.2 ChromeDriver is assuming that Chrome has crashed
解决方法:
4.DriverConfig整体的代码
DriverConfig类是对浏览器驱动配置类进行了封装,之后在别的地方使用的时候调用这个类就行。
class DriverConfig:
@staticmethod
def driver_config():
"""
浏览器驱动
:return:
"""
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-extensions')
options.add_argument('--headless')
options.add_argument("disable-infobars")
# 设置窗口大小
options.add_argument("window-size=1920,1080")
# 无头模式
# options.add_argument('--headless')
# 解决卡顿
options.add_argument("--disable-gpu")
options.add_argument("--no-sanbox")
options.add_argument('--disable-dev-shm-usage')
# 解决selenium无法访问https的问题
options.add_argument("--ignore-certificate-errors")
options.add_argument("--allow-insecure-localhost")
# 无痕模式
options.add_argument("--incognito")
# 去除"chrome正受到自动测试软件的控制"
options.add_experimental_option(
"excludeSwitches", ["enable-automation"]
)
options.binary_location = "/opt/google/Chrome/chrome"
# 驱动的选项是这样的
chromedriver_path = "/root/eee/chromedriver-linux64/chromedriver"
#driver_path = ChromeDriverManager().install()
driver = webdriver.Chrome(service=Service(executable_path=chromedriver_path),options=options)
# 删除所有cookies
driver.delete_all_cookies()
# # 隐性等待时间
# driver.implicitly_wait(3)
# # 删除所有cookies
# driver.delete_all_cookies()
return driver
if __name__ == "__main__":
DriverConfig().driver_config()