List<WebElement> $findElements(final String selector, List<WebElement> els) { // Chrome Bug(http://code.google.com/p/selenium/issues/detail?id=934): // if pass in elements in the args object then chrome fails to run the selector properly. // So intead have to iterate over the elements and run the selector one at a time. List<WebElement> newElements = new ArrayList<WebElement>(); for (WebElement element : els) { Object[] args = { "ATLWD.$(context).find(" + fixSelector(selector) + ")", element }; List<WebElement> temp = JavaScriptUtils.execute("return ATLWD.byJquery.execute(arguments[0],arguments[1])", getDriver(), args); newElements.addAll(temp); } return newElements; //Object[] args = { "ATLWD.byJquery.$(context).find('" + selector + "')", els }; //return JavaScriptUtils.execute("return ATLWD.byJquery.execute(arguments[0],arguments[1])", driver, args); }
String selectorStr = fixSelector(selector.getSelector());
List<WebElement> $findElements(final String selector, final SearchContext context) { if (isSimpleSelector(selector)) { return executeSimpleSelector(selector, context); } String fixedSelector = fixSelector(selector); if (context instanceof WebElement) { Object[] args = { "ATLWD.$(context).find(" + fixedSelector + ")", (WebElement) context }; return JavaScriptUtils.execute("return ATLWD.byJquery.execute(arguments[0],arguments[1])", getDriver(), args); } else { Object[] args = { "ATLWD.$(document).find(" + fixedSelector + ")"}; return JavaScriptUtils.execute("return ATLWD.byJquery.execute(arguments[0])", getDriver(), args); } }