首页 > 解决方案 > FireFoxDriver 找不到使用 Jquery 选择器的元素

问题描述

当我运行chrome 驱动程序时一切正常,但 firefox 总是抛出

org.openqa.selenium.NoSuchElementException:无法使用 By.jQuery 定位元素:“$( [data-auto-sub-section-title='Onset']:eq(0) .vmr-select-control)”

调用 FF 驱动程序:

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

Firefox 驱动程序+jquery 选择器是否存在任何已知问题?

标签: jqueryselenium-webdriverwebdrivergeckodriverselenide

解决方案


问题出在

@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);
}

我变了

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

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

问题解决了


推荐阅读