Search code examples
jqueryselenium-webdriverwebdrivergeckodriverselenide

FireFoxDriver cant find e;ements using Jquery Selectors


When i run chrome driver all is ok, but firefox always throws

org.openqa.selenium.NoSuchElementException: Cannot locate an element using By.jQuery: "$( [data-auto-sub-section-title='Onset']:eq(0) .vmr-select-control)"

calling FF driver:

public WebDriver getStandaloneFF() {
    FirefoxDriverManager.getInstance(FirefoxDriver.class).setup();
    WebDriver driver = new FirefoxDriver();
    driver.manage().window().setSize(new Dimension(1920, 1080));
    return driver;
}

Is there any known issues with firefox driver+jquery selectors?


Solution

  • Problem was in

    @Override
    public List<WebElement> findElements(SearchContext context) {
        WebDriver driver = getWebDriverFromSearchContext(context);
    
        if (!isJQueryInThisPage(driver)) {
            try {
                injectJQuery(driver);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        return new ByJavaScript("return $(\"" + query + "\")").findElements(context);
    }
    

    i've changed

     return new ByJavaScript("return $(\"" + query + "\")").findElements(context);
    

    to

    return new ByJavaScript("return $(\"" + query + "\")toArray()").findElements(context);
    

    and problem was resolved