Java linux上的Selenium会话

Java linux上的Selenium会话,java,linux,selenium,Java,Linux,Selenium,我尝试运行在windows计算机上创建的selenium测试。我将驱动程序更改为linux版本。将其添加到路径。但每次我 org.selenium.NoSUchSessionException 我使用最新的浏览器和最新的驱动程序 我这样定义它: public class AuthTestSteps { private static WebDriver driver; private static WebDriverWait wait; @Given("^blah_blah$") public

我尝试运行在windows计算机上创建的selenium测试。我将驱动程序更改为linux版本。将其添加到路径。但每次我

org.selenium.NoSUchSessionException
我使用最新的浏览器和最新的驱动程序

我这样定义它:

public class AuthTestSteps {
private static WebDriver driver;
private static WebDriverWait wait;
@Given("^blah_blah$")
public void method() throws MalformedURLException{

    driver = new ChromeDriver();
    wait = new WebDriverWait(driver, 30);
    System.setProperty("webdriver.chrome.driver","chromedriver");
}
解决方案:


im我的案例解决方案是向chrome添加驱动程序管理器和选项,比如“无沙盒”,因为它是从root用户运行的。

使用chrome驱动程序的绝对路径。像这样更改代码

public class AuthTestSteps {
private static WebDriver driver;
private static WebDriverWait wait;
@Given("^blah_blah$")
public void method() throws MalformedURLException{

    // assuming that your chrome driver is located inside
    // your project(src/main/resources/browser_driver/chromedriver)
    // take absolute path for chrome driver
    File file = new File("src/main/resources/browser_driver/chromedriver");
    String absolutePath = file.getAbsolutePath();

    driver = new ChromeDriver();
    wait = new WebDriverWait(driver, 30);
    System.setProperty("webdriver.chrome.driver", absolutePath);
}
执行Selenium测试时,您需要首先通过
System.setProperty()
行传递WebDriver二进制文件的绝对路径,然后按如下方式初始化Web浏览器:

public class AuthTestSteps 
{
    private static WebDriver driver;

    @Given("^blah_blah$")
    public void method() throws MalformedURLException
    {

        System.setProperty("webdriver.chrome.driver","/path/to/chromedriver");
        driver = new ChromeDriver();
    }
}

不,我是这样尝试的,但没用。还是相同的错误与其编辑问题以添加解决方案,不如将其作为答案发布,但是。(甚至可以在页面上直接回答问题)