Jenkins 中的 Selenium SessionNotCreatedException 由于“路径“/tmp/rust_mozprofileO0WZJN”处设备上没有剩余空间(操作系统错误 28)”

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

在尝试通过 Jenkins 运行 Selenium 时,遇到以下错误:

org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Error while creating session with the driver service. Stopping driver service: Could not start a new session. Response code 500. 
Message: No space left on device (os error 28) at path "/tmp/rust_mozprofileO0WZJN"
Build info: 
version: '4.3.0', 
revision: 'a4995e2c09*' 
System info: 
host: 'pic-01-vm-nubo11picmolecule02-01-selenium.novalocal', 
ip: '172.18.0.39', 
os.name: 'Linux', 
os.arch: 'amd64', 
os.version: '5.14.0-284.18.1.el9_2.x86_64', 
java.version: '17.0.8'

作为故障排除步骤,我尝试修改驱动程序设置的路径。

selenium-webdriver jenkins selenium-chromedriver selenium-grid selenium-firefoxdriver
1个回答
0
投票

错误消息“设备上没有剩余空间(操作系统错误 28)”非常简单。

该消息表明

/tmp
目录没有足够的剩余空间。 Selenium 在运行测试时使用 /tmp 目录创建临时配置文件,如错误消息
(os error 28) at path "/tmp/rust_mozprofileO0WZJN"
中所示。

执行命令

df -h
查看文件系统的磁盘使用情况并检查
/tmp
目录的使用情况。如果确实是这种情况,看看是否可以释放一些空间。

还有另一种选择,当您使用 Firefox 浏览器时,您可以设置

options
属性以使 Selenium 使用不同的路径。

问题并未表明您正在使用哪种 Selenium 语言,但下面是 Chrome 和 Firefox 的示例,使用 Java 或 Python

Chrome - Java

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class Main {
    public static void main(String[] args) {
        ChromeOptions options = new ChromeOptions();
        options.addArguments("user-data-dir=/path/to/your/directory");
        ChromeDriver driver = new ChromeDriver(options);
    }
}

Chrome Python

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

options = Options()
options.add_argument("user-data-dir=/path/to/your/directory")

driver = webdriver.Chrome(options=options)

Firefox Java

import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;

public class Main {
    public static void main(String[] args) {
        FirefoxOptions options = new FirefoxOptions();
        options.addPreference("browser.download.dir", "/path/to/your/directory");
        FirefoxDriver driver = new FirefoxDriver(options);
    }
}

火狐Python

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
options.profile = "/path/to/your/directory"

driver = webdriver.Firefox(options=options)

上面的示例应该重定向 Selenium 以将其临时配置文件存储到除

/tmp

以外的指定路径

注意。 确保指定的目录存在并且 Selenium 具有写入该目录的必要权限。

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