运行时,java抛出以下异常: 线程“main”org.openqa.selenium.SessionNotCreatedException 中出现异常:无法创建新的远程 session 。所需功能 = 功能 [{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");
最佳答案
这是您问题的答案:
SessionNotCreatedException
可能因不同原因而被观察到,例如 Selenium-geckodriver
版本不匹配、悬空 geckodriver
实例和操作系统琐事
。我建议您考虑以下步骤:
- 从
任务管理器
手动/编程方式杀死所有悬空的geckodriver
实例。如果可能的话,重新启动系统。如果需要,请运行CCleaner
以清除系统中所有不需要的操作系统杂务。 - 下载
Selenium Standalone Server 3.4.0
或Selenium Client 3.4.0
从这里page . - 从此 page 下载
geckodriver v.0.16.1
. - 确保您已安装最新的稳定 GA 版
Mozilla Firefox
53.0 MarionetteDriver
实现已停止,您可以考虑使用FirefoxDriver
实现。- 有关
MarionetteDriver
和GeckoDriver
的详细讨论,您可以考虑查看 this discussion . 这是您自己的代码,经过一些细微的调整后可以很好地执行:
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"); } }
如果这能回答您的问题,请告诉我。
关于Java 抛出异常 :Selenium 3. 4.0,Gecko 驱动程序 16.01,FF 53.01,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44351100/