GVKun编程网logo

selenium.common.exceptions.SessionNotCreatedException:消息:无法通过Selenium找到与Firefox 46匹配的功能集

14

本文将分享selenium.common.exceptions.SessionNotCreatedException:消息:无法通过Selenium找到与Firefox46匹配的功能集的详细内容,此外

本文将分享selenium.common.exceptions.SessionNotCreatedException:消息:无法通过Selenium找到与Firefox 46匹配的功能集的详细内容,此外,我们还将为大家带来关于Appium问题解决方案(5)- selenium.common.exceptions.InvalidSelectorException: Message: Locator Strategy 'name' is not supported for this session、java – Selenium 3.0 Firefx驱动程序失败与org.openqa.selenium.SessionNotCreatedException无法创建新的远程会话、org.openqa.selenium.SessionNotCreatedException的实例源码、org.openqa.selenium.SessionNotCreatedException:通过Selenium v3.11.0启动Firefox v37时,找不到匹配的功能集的相关知识,希望对你有所帮助。

本文目录一览:

selenium.common.exceptions.SessionNotCreatedException:消息:无法通过Selenium找到与Firefox 46匹配的功能集

selenium.common.exceptions.SessionNotCreatedException:消息:无法通过Selenium找到与Firefox 46匹配的功能集

我这里必须有一些版本不匹配,因为我无法使用Python来实现Selenium来启动Firefox
Web浏览器。我使用的是Firefox的旧版本,因为此处的其他人具有相同的旧Python版本,而对于他们来说,旧版本的Firefox效果最佳。

码:

from selenium import webdriverfrom selenium import commonfrom selenium.webdriver import ActionChainsfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.common.exceptions import TimeoutExceptionfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.webdriver.common.desired_capabilities import DesiredCapabilitiesdriver=webdriver.Firefox(capabilities=DesiredCapabilities.FIREFOX)

错误:

Traceback (most recent call last):  File "scrapeCommunitySelenium.py", line 13, in <module>    driver=webdriver.Firefox(capabilities=DesiredCapabilities.FIREFOX)  File "/Library/Python/2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 158, in __init__    keep_alive=True)  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 154, in __init__    self.start_session(desired_capabilities, browser_profile)  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 243, in start_session    response = self.execute(Command.NEW_SESSION, parameters)  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 311, in execute    self.error_handler.check_response(response)  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 237, in check_response    raise exception_class(message, screen, stacktrace)selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities

版本信息:

  • Python 2.7.10
  • selenium3.8.0
  • Firefox 46.0
  • GeckoDriver 0.19.1(位于我的PATH环境变量中的文件夹中)
  • MacOS 10.12.6

答案1

小编典典

使用 Selenium 3.8.0时 ,必须将 GeckoDriver 用作必需项。但同样由于您使用 的Firefox v46.0
你必须设置能力 的提线木偶False经过DesiredCapabilities()如下:

from selenium import webdriverfrom selenium.webdriver.common.desired_capabilities import DesiredCapabilitiescap = DesiredCapabilities().FIREFOXcap["marionette"] = Falsebrowser = webdriver.Firefox(capabilities=cap, executable_path="C:\\path\\to\\geckodriver.exe")browser.get(''http://google.com/'')browser.quit()

Appium问题解决方案(5)- selenium.common.exceptions.InvalidSelectorException: Message: Locator Strategy 'name' is not supported for this session

Appium问题解决方案(5)- selenium.common.exceptions.InvalidSelectorException: Message: Locator Strategy 'name' is not supported for this session

背景

使用Appium Server 1.15.1版本

执行了以下脚本

test = driver.find_element_by_name("自动化测试")
print(test.text)

报了以下错误

 

圈重点

selenium.common.exceptions.InvalidSelectorException: Message: Locator Strategy ''name'' is not supported for this session

简译:  by_name 这种定位元素方式已经不支持了

然后查了下资料,发现是在appium1.5之后, by_name 的这种定位方式已经彻底移除

 

解决方法一

最简单,不再用 by_name 定位方式了,改用id、class、xpath、accessibility id

 

解决方法二

看了网上的教程【driver.js】,最终发现也是没用的,这里就不展开了~还是换个定位方式叭!

总结

以上是小编为你收集整理的Appium问题解决方案(5)- selenium.common.exceptions.InvalidSelectorException: Message: Locator Strategy ''name'' is not supported for this session全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

原文地址:https://www.cnblogs.com/poloyy

java – Selenium 3.0 Firefx驱动程序失败与org.openqa.selenium.SessionNotCreatedException无法创建新的远程会话

java – Selenium 3.0 Firefx驱动程序失败与org.openqa.selenium.SessionNotCreatedException无法创建新的远程会话

Selenium 3.0 Firefx驱动程序通过org.openqa.selenium.SessionNotCreatedException失败:无法创建新的远程会话.
System.setProperty("webdriver.gecko.driver","..<Path>../geckodriver.exe");
capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver = new FirefoxDriver(capabilities);


Caused by: org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{marionette=true,firefoxOptions=org.openqa.selenium.firefox.FirefoxOptions@23aa363a,browserName=firefox,moz:firefoxOptions=org.openqa.selenium.firefox.FirefoxOptions@23aa363a,version=,platform=ANY}],required capabilities = Capabilities [{}]
Build info: version: '3.0.0',revision: '350cf60',time: '2016-10-13 10:48:57 -0700'
System info: host: 'D202540',ip: '10.22.19.193',os.name: 'Windows 7',os.arch: 'amd64',os.version: '6.1',java.version: '1.8.0_45'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:91)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:259)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:247)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:242)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:135)

解决方法

你需要下载geckodriver.然后设置
System.setProperty("webdriver.gecko.driver","path\\to\\geckodriver.exe")

检查这个link.

org.openqa.selenium.SessionNotCreatedException的实例源码

org.openqa.selenium.SessionNotCreatedException的实例源码

项目:marathonv5    文件:JavaDriverTest.java   
public void failsWhenRequestingNonCurrentPlatform() throws Throwable {
    Platform[] values = Platform.values();
    Platform otherPlatform = null;
    for (Platform platform : values) {
        if (Platform.getCurrent().is(platform)) {
            continue;
        }
        otherPlatform = platform;
        break;
    }
    DesiredCapabilities caps = new DesiredCapabilities("java","1.0",otherPlatform);
    try {
        driver = new JavaDriver(caps,caps);
        throw new MissingException(SessionNotCreatedException.class);
    } catch (SessionNotCreatedException e) {
    }
}
项目:devtools-driver    文件:NewSessionHandler.java   
private ServerSideSession safeStart(DesiredCapabilities cap) {
  ServerSideSession session = null;
  try {
    // init session
    session = getServer().createSession(cap);
    if (session == null) {
      throw new SessionNotCreatedException(
          "The server is currently shutting down and doesn't accept new tests.");
    }

    // start session
    session.start();
    return session;
  } catch (Exception e) {
    // Todo(user): Clean this up to meet logging best practices (should not log and throw).
    logger.atSevere().withCause(e).log("Error starting the session");
    if (session != null) {
      session.stop();
    }
    throw new SessionNotCreatedException(e.getMessage(),e);
  }
}
项目:hsac-fitnesse-fixtures    文件:DriverManager.java   
public SeleniumHelper getSeleniumHelper() {
    if (helper == null) {
        DriverFactory currentFactory = getFactory();
        if (currentFactory == null) {
            throw new StopTestException("Cannot use Selenium before configuring how to start a driver (for instance using SeleniumDriverSetup)");
        } else {
            try {
                WebDriver driver = currentFactory.createDriver();
                postProcessDriver(driver);
                SeleniumHelper newHelper = createHelper(driver);
                newHelper.setWebDriver(driver,getDefaultTimeoutSeconds());
                setSeleniumHelper(newHelper);
            } catch (SessionNotCreatedException e) {
                throw new StopTestException("Unable to create selenium session using: " + currentFactory,e);
            }
        }
    }
    return helper;
}
项目:marathonv5    文件:JavaDriverTest.java   
public void failsWhenRequestingANonJavaDriver() throws Throwable {
    DesiredCapabilities caps = new DesiredCapabilities("xjava",Platform.getCurrent());
    try {
        driver = new JavaDriver(caps,caps);
        throw new MissingException(SessionNotCreatedException.class);
    } catch (SessionNotCreatedException e) {
    }
}
项目:marathonv5    文件:JavaDriverTest.java   
public void failsWhenRequestingUnsupportedCapability() throws Throwable {
    DesiredCapabilities caps = new DesiredCapabilities("java",Platform.getCurrent());
    caps.setCapability("rotatable",true);
    try {
        driver = new JavaDriver(caps,caps);
        throw new MissingException(SessionNotCreatedException.class);
    } catch (SessionNotCreatedException e) {
    }
}
项目:devtools-driver    文件:NewSessionHandler.java   
@Override
public Response handle() throws Exception {
  ServerSideSession session = null;
  try {
    JsonObject capsJson = getRequest().getPayload().getJsonObject("desiredCapabilities");
    session = safeStart(new DesiredCapabilities(JavaxJson.toJavaMap(capsJson)));
    if (session == null) {
      throw new SessionNotCreatedException("Failed to start session.");
    }

    Response r = new Response();
    r.setSessionId(session.getSessionId());
    r.setValue(session.getWebDriver().capabilities());
    r.setStatus(0);
    return r;
  } catch (Exception e) {
    logger.atSevere().withCause(e).log();
    if (session != null) {
      session.stop();
    }
    if (e instanceof WebDriverException) {
      throw e;
    } else {
      throw new SessionNotCreatedException(e.getMessage(),e);
    }
  }
}

org.openqa.selenium.SessionNotCreatedException:通过Selenium v3.11.0启动Firefox v37时,找不到匹配的功能集

org.openqa.selenium.SessionNotCreatedException:通过Selenium v3.11.0启动Firefox v37时,找不到匹配的功能集

我试图在Firefox中运行网站进行测试,但出现错误“驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;”
我已经正确设置了路径,但仍然不知道问题出在哪里。这是我的代码:

if (browsers.equalsIgnoreCase("Firefox")) {        String driverPath = System.getProperty("user.dir") + "\\src/test/java\\drivers\\geckodriver.exe";        System.setProperty("webdriver.firefox.marionette", "false");        driver = new FirefoxDriver();        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);    } else if (browsers.equalsIgnoreCase("Chrome")) {        // String driverPath = System.getProperty("user.dir") +        // "\\src\\Drivers\\chromedriver";        // System.setProperty("webdriver.chrome.driver", driverPath);        System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");        driver = new ChromeDriver();        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);    }

这是我的代码的失败跟踪:

FAILED CONFIGURATION: @BeforeClass launchBrowserorg.openqa.selenium.SessionNotCreatedException: Unable to find a matching set of capabilitiesBuild info: version: ''3.8.0'', revision: ''924c4067df'', time: ''2017-11-30T11:36:59.109Z''System info: host: ''DSCHD-PC-180'', ip: ''192.168.6.122'', os.name: ''Windows 7'', os.arch: ''amd64'', os.version: ''6.1'', java.version: ''1.8.0_161''Driver info: driver.version: FirefoxDriverremote stacktrace:     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)    at java.lang.reflect.Constructor.newInstance(Unknown Source)    at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57)    at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104)    at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:123)    org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219)    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:142)    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120)    at Utility.UtilityMethods.openBrowser(UtilityMethods.java:26)    at TestCases.LoginTestCase.launchBrowser(LoginTestCase.java:35)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)    at java.lang.reflect.Method.invoke(Unknown Source)    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)    at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:455)    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:168)    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)    at org.testng.TestRunner.privateRun(TestRunner.java:648)    at org.testng.TestRunner.run(TestRunner.java:505)    at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)    at org.testng.SuiteRunner.run(SuiteRunner.java:364)    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)    at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)    at org.testng.TestNG.runSuites(TestNG.java:1049)    at org.testng.TestNG.run(TestNG.java:1017)    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)SKIPPED CONFIGURATION: @AfterClass quitBrowserSKIPPED: registration

答案1

小编典典

为了简化操作,在使用 Selenium Client v3.11.0Firefox v37时, 您需要从 mozilla /
geckodriver
下载最新的
GeckoDriver 并将其保存在系统中的任何位置。接下来,在该行中传递 Key webdriver.gecko.driver* 以及
Value 作为 GeckoDriver绝对路径 ,最后通过 DesiredCapabilities 类将功能
marionatte 设置为 false 并合并到 FirefoxOptions 实例的实例中以启动 Firefox
****System.setProperty()
__
__*____浏览器如下:

System.setProperty("webdriver.gecko.driver", "C:/path/to/geckodriver.exe");DesiredCapabilities dc = new DesiredCapabilities();dc.setCapability("marionatte", false);FirefoxOptions opt = new FirefoxOptions();opt.merge(dc);FirefoxDriver driver =  new FirefoxDriver(opt);driver.get("https://stackoverflow.com");System.out.println("Application opened");System.out.println("Page Title is : "+driver.getTitle());driver.quit();

更新资料

根据您的评论更新,您正在使用 GeckoDriver v0.20.1

但是,如果您回顾一下 GeckoDriver v0.18.0 的发行说明,它显然会提到:

geckodriver now recommends Firefox 53 and greater

因此,使用 GeckoDriver v0.18.0 及更高版本,您必须强制使用Firefox
53及更高版本。要摆脱这种限制,您可以降级到以下任一版本:

  • GeckoDriver v0.17.0
  • GeckoDriver v0.16.1

今天的关于selenium.common.exceptions.SessionNotCreatedException:消息:无法通过Selenium找到与Firefox 46匹配的功能集的分享已经结束,谢谢您的关注,如果想了解更多关于Appium问题解决方案(5)- selenium.common.exceptions.InvalidSelectorException: Message: Locator Strategy 'name' is not supported for this session、java – Selenium 3.0 Firefx驱动程序失败与org.openqa.selenium.SessionNotCreatedException无法创建新的远程会话、org.openqa.selenium.SessionNotCreatedException的实例源码、org.openqa.selenium.SessionNotCreatedException:通过Selenium v3.11.0启动Firefox v37时,找不到匹配的功能集的相关知识,请在本站进行查询。

本文标签: