Java抛出异常:Selenium 3.4.0,Gecko驱动程序16.01,FF 53.01

时间:2017-06-04 05:39:26

标签: java selenium firefox

运行时,java抛出以下异常: 线程" main"中的例外情况org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话。 desired capabilities = Capabilities [{marionette = true,browserName = firefox,version =,platform = A. 我使用gecko驱动程序16.1。当我使用gecko 14.01时,它导航到gmail页面,然后即使我设置隐式等待也无法找到元素。

    import java.util.concurrent.TimeUnit;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.firefox.MarionetteDriver;
    import org.openqa.selenium.remote.DesiredCapabilities;
    public class login {
    public static void main(String[] args) {
        // Create a new instance of the Firefox driver
    System.setProperty("webdriver.gecko.driver","C:/Users/asdf/Desktop/selenium/gecko32/geckodriver.exe");
    DesiredCapabilities capabilities=DesiredCapabilities.firefox();
    capabilities.setCapability("marionette", true);
    WebDriver driver = new MarionetteDriver(capabilities);
        //WebDriver driver = new FirefoxDriver();
        //  Wait For Page To Load
        // Put a Implicit wait, this means that any search for elements on the page
    driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
        // Navigate to URL
    driver.get("https://mail.google.com/");
    driver.manage().window().maximize();
    //driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        // gmail login
    driver.findElement(By.xpath("//*[@id='identifierId']")).sendKeys("username");
    driver.findElement(By.id("next")).click();
    driver.findElement(By.id("Passwd")).sendKeys("password");

3 个答案:

答案 0 :(得分:1)

以下是您的问题的答案:

SessionNotCreatedException可以出于不同的原因被观察到,例如 Selenium-geckodriver 版本不匹配,悬挂 geckodriver 实例和 OS chores 即可。我建议你考虑以下步骤:

  1. Task Manager手动/以编程方式杀死所有悬空geckodriver个实例。如果可能,请重启系统。如果需要,请运行CCleaner以清除系统中所有不需要的操作系统。
  2. 从此Selenium Standalone Server 3.4.0
  3. 下载Selenium Client 3.4.0page
  4. 从此page下载 geckodriver v.0.16.1
  5. 确保您安装了Mozilla Firefox 53.0
  6. 的最新稳定GA版本
  7. MarionetteDriver实施已停止,您可以考虑使用FirefoxDriver实施。
  8. 有关MarionetteDriverGeckoDriver的详细讨论,您可以考虑查看this discussion
  9. 这是您自己的代码,可以通过一些小的调整来执行:

    package demo;
    
    import java.util.concurrent.TimeUnit;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.remote.DesiredCapabilities;
    
    public class Q44351100_SessionNotCreatedException 
    {
        public static void main(String[] args) 
        {
            System.setProperty("webdriver.gecko.driver","C:/your_directory/geckodriver.exe");
            DesiredCapabilities capabilities=DesiredCapabilities.firefox();
            capabilities.setCapability("marionette", true);
            WebDriver driver = new FirefoxDriver(capabilities);
            driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
            driver.get("https://mail.google.com/");
            driver.manage().window().maximize();
            driver.findElement(By.xpath("//*[@id='identifierId']")).sendKeys("username");
        }
    }
    
  10. 如果这回答你的问题,请告诉我。

答案 1 :(得分:0)

尝试使用最新版本的Firefox浏览器和gecko驱动程序。希望这有帮助

答案 2 :(得分:0)

启动FirefoxDriver而不是木偶驱动程序。

WebDriver driver = new FirefoxDriver(capabilities);

希望这会对你有所帮助。感谢。