我在Mac和pycharm中使用硒,下面是我使用的版本:
chrome: Version 96.0.4664.110 (Official Build) (x86_64)
chromedriver: 96.0.4664.45
selenium: 4.1.0
这是我正在运行的代码,
import sys
from bs4 import BeautifulSoup
from selenium import webdriver
import numpy as np
def main():
pages = np.arange(1, 2, 1)
for page in pages:
results = []
page = "https://www.spanishdict.com/conjugate/" + str(page)
sys.path.insert(0, '/usr/lib/chromium-browser/chromedriver')
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument("--disable-setuid-sandbox")
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument("--remote-debugging-port=9222 ")
driver = webdriver.Chrome('chromedriver', chrome_options=chrome_options)
driver.get(page)
soup = BeautifulSoup(driver.page_source, 'html.parser')
for element in soup.find_all('a'):
name = element.text
results.append(name)
print(results)
if __name__ == '__main__':
main()
当我注释chrome_options.add_argument("--remotedebuggingport=99222"(时,我会得到错误:DevToolsActivePort文件不存在,当我取消注释它时,我得到错误chrome不可访问。该代码过去可以很好地使用chrome91,但由于它已经更新,它不再工作了。我试过重新安装,重新启动我的笔记本电脑,甚至在网上找到了一个不同的调试端口("--remotedebuggingport=12582"(,但似乎什么都不起作用
即使在尝试了我在stackoverflow中找到的几乎所有解决方案,甚至降级了我的chrome之后,我也意识到什么都不起作用。因此,我为mac安装了firfox-gekodriver,并将其放在我的/usr/local/bin中。但请注意,Mac 11或更高版本可能不允许它运行,因此请查看此文档以找到解决方案。之后,您可以按照这个中等链接测试geckdfriver。。还要将以下路径添加到网络驱动程序。
driver = webdriver.Firefox(executable_path = '/usr/local/bin/geckodriver')