由于“路径“/tmp/rust_mozprofileO0WZJN”处的设备上没有剩余空间(操作系统错误28)“,在Jenkins中出现Selenium会话未创建异常

zlwx9yxi  于 2023-10-17  发布在  Jenkins
关注(0)|答案(1)|浏览(147)

在尝试通过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'

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

wgeznvg7

wgeznvg71#

错误消息“No space left on device(os error 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);
    }
}

Firefox 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具有写入该目录的必要权限。

相关问题