量角器| Linux机器| WebDriverError:未知错误:无法为用户数据目录创建临时目录

时间:2019-11-18 15:39:54

标签: selenium google-chrome selenium-webdriver protractor selenium-chromedriver

我正在使用量角器和新手,我已经使用以下方法安装了量角器 npm i -g量角器 webdriver-manager更新 webdriver-manager start

当我运行量角器conf_master.js时 我收到以下错误消息

[chrome #01-1] [20:01:12] I/local - Starting selenium standalone server...
[chrome #01-1] [20:01:16] I/local - Selenium standalone server started at http://10.289.122.156:21199/wd/hub
[chrome #01-1]
[chrome #01-1] /data/home/aflsexchange/node-v10.15.3-linux-x64/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:546
[chrome #01-1]         throw new ctor(message);
[chrome #01-1]               ^
[chrome #01-1] WebDriverError: unknown error: cannot create temp dir for user data dir
[chrome #01-1] Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
[chrome #01-1] System info: host: '<myurl>', ip: '10.247.189.139', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-1062.1.2.el7.x86_64', java.version: '1.8.0_161'
[chrome #01-1] Driver info: driver.version: unknown
[chrome #01-1] remote stacktrace: #0 0x55f67c8507e9 <unknown>
[chrome #01-1]

我正在使用Linux机器。请让我知道解决方案

2 个答案:

答案 0 :(得分:0)

此错误消息...

WebDriverError: unknown error: cannot create temp dir for user data dir

...表示 ChromeDriver 在尝试启动/产生新的 WebBrowser 时无法创建临时目录 > Chrome浏览器会话。

由于不同的配置问题或正在使用的二进制版本之间不兼容,可能会发生此错误。


解决方案

确保:

  • 节点使用包管理器更新。
  • 非root用户用户(最好具有root / admin权限)执行@Test
  • JDK 已升级到当前级别JDK 8u222
  • 已升级到当前级别Version 3.141.59
  • ChromeDriver 已更新为当前的ChromeDriver v78.0级别。
  • Chrome 已更新为当前的 Chrome版本78.0 级别。 (根据ChromeDriver v78.0 release notes
  • 通过您的 IDE
  • 清理您的项目工作区重建您的项目,并且仅具有必需的依赖项。
  • (仅适用于 WindowsOS )使用CCleaner工具清除执行 Test Suite 前后的所有操作系统琐事。
  • (仅仅LinuxOS Free Up and Release the Unused/Cached Memory in Ubuntu/Linux Mint在执行 Test Suite 之前和之后。
  • 如果您的基本 Web客户端版本过旧,请通过Revo Uninstaller进行卸载,并安装最新版本的 Web客户端。 li>
  • 进行系统重启
  • 始终在driver.quit()方法内调用tearDown(){},以优雅地关闭和销毁 WebDriver Web Client 实例。

答案 1 :(得分:0)

通常这个问题与权限有关请使用自定义user-data-dir下面你会发现小例子为我解决了问题

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--profile-directory=Default')
chrome_options.add_argument('--user-data-dir=~/.config/google-chrome')

driver = webdriver.Chrome(options=chrome_options)
url = 'https://www.google.com'
driver.get(url) 
get_url = driver.current_url 
print(get_url)