硒和Chrome:清单文件丢失或不可读

时间:2019-07-19 14:52:38

标签: selenium selenium-webdriver selenium-chromedriver

我之前曾问过this个问题,但是由于这个问题现在有所不同,所以我只想提出一个新问题以使其具体。

我的规格:

ChromeDriver version 75.0.3770.140
Selenium: version '3.141.0'
WSL (linux subsystem) of windows 10

我运行了这段代码:

import selenium
from selenium import webdriver
from bs4 import BeautifulSoup
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.chrome.options import Options

options = Options()
options.binary_location='/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'
options.add_argument("user-data-dir=C:\\Users\\kela\\AppData\\Local\\Google\\Chrome\\User Data\\Default ")
driver = webdriver.Chrome(options=options)
driver.get('http://google.com')

运行此命令时:

  1. 弹出一个标题为“ C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe”的终端窗口。

  2. 然后,如果输入X,将弹出“错误加载扩展名”对话框,提示“无法从C:\ tmp.com.google.Chrome。* ekwTM \ internal加载扩展名。清单文件丢失或无法读取。

  3. 如果我对这个错误单击“确定”,则会打开一个带有google的标签,但是步骤1的可执行文件窗口会继续显示在它上面,如果我继续单击X,它会一直显示在上面。

  4. p>
  5. 脚本的其余部分(即实际上使用浏览器)无法运行。

我做了什么:

我在StackOverflow和其他地方读到,卸载并重新安装Chrome可以解决此问题,

除此之外,我看不到任何适用于此问题的明确,具体的解决方案。

所以我想知道是否有人对如何解决此问题提出建议。

编辑1:通过阅读this帖子,我尝试了以下代码:

options = Options()
options.binary_location='/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'
options.add_argument("user-data-dir=C:\\Users\\kela\\AppData\\Local\\Google\\Chrome\\User Data\\Default ")
path = os.path.dirname(r"C:\temp\aapocclcgogkmnckokdopfmhonfmgoek\0.10_0\manifest.json")
options.add_argument(f"--load-extension={path}")
driver = webdriver.Chrome(options=options)

在我检查过的位置,文件:/c/temp/aapocclcgogkmnckokdopfmhonfmgoek/0.10_0/manifest.json确实存在。

但是错误是:

selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir

编辑1:我没有打开任何其他Chrome实例(我已完全关闭了该应用程序)

编辑2:按照SO的建议,我转到了C:\ Users \ kela \ AppData \ Local \ Google \ Chrome \ User Data;将目录复制并粘贴到AutomationProfile,然后编写代码:

import selenium
from selenium import webdriver
from bs4 import BeautifulSoup
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.chrome.options import Options

options = Options()
options.binary_location='/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'
options.add_argument("--user-data-dir=/c/Users/kela/AppData/Local/Google/Chrome/AutomationProfile/")
options.add_argument('--profile-directory=Default/')
driver = webdriver.Chrome(options=options)
driver.get('http://google.com/')

但是我得到了一个错误:Google Chrome无法读取和写入其数据目录,然后再读取到user-data-dir。

0 个答案:

没有答案