private String getSelected(List<WebElement> els) { WebElement element = first(els, this::isSelectedAction); if (element == null) throw exception("No elements selected. Override getSelectedAction or place locator to <select> tag"); return element.getText(); }
/** * @param names Specify names * Wait while all options with names (use enum) selected. Return false if this not happens */ public final void waitSelected(TEnum... names) { waitSelected(toStringArray(LinqUtils.select(names, EnumUtils::getEnumValue))); }
private List<WebElement> getElementsByCondition(JFuncTREx<WebElement, Boolean> condition) { List<WebElement> elements = timer().getResultByCondition( this::searchElements, els -> any(els, getSearchCriteria())); if (elements == null || elements.size() == 0) return new ArrayList<>(); return elements.size() < 10 ? where(elements, condition) : elements; }
private WebElement getWebElement(List<WebElement> els, String name) { if (els == null) throw exception("Can't get option. No optionsNamesLocator and allLabelsLocator found"); List<WebElement> elements = where(els, el -> el.getText().equals(name)); if (elements != null && elements.size() == 1) return elements.get(0); throw exception("Can't get option. No optionsNamesLocator and allLabelsLocator found"); }
public <T> T asEntity(Class<T> entityClass) { try { T data = newEntity(entityClass); foreach(getFields(this, IHasValue.class), item -> { Field field = LinqUtils.first(getFields(data, String.class), f -> namesEqual(f.getName(), item.getName())); if (field == null) return; try { field.set(data, ((IHasValue) getValueField(item, this)).getValue()); } catch (Exception ignore) { } }); return data; } catch (Exception ex) { throw exception("Can't get entity from Form" + getName() + " for class: " + entityClass.getClass()); } }
public Button getButton(String buttonName) { List<Field> fields = getFields(element, IButton.class); if (fields.size() == 1) return (Button) getValueField(fields.get(0), element); Collection<Button> buttons = LinqUtils.select(fields, f -> (Button) getValueField(f, element)); Button button = LinqUtils.first(buttons, b -> namesEqual(toButton(b.getName()), toButton(buttonName))); if (button == null) throw exception("Can't find button '%s' for Element '%s'", buttonName, toString()); return button; }
protected void selectListAction(String... names) { foreach(names, this::selectAction); }
public List<R> getRows(String... colNames) { return select(colNames, colName -> castToRow(columns.getColumn(colName))); } public List<E> entities(JFuncTREx<E, Boolean> rule) {
public static <T> boolean any(T[] array, JFuncTREx<T, Boolean> func) { return any(asList(array), func); } public static <T> T single(Collection<T> list, JFuncTREx<T, Boolean> func) {
protected List<WebElement> getLineAction(String lineName) { int index = getIndex(select(headers(), String::toLowerCase), lineName.toLowerCase()) + 1; if (locatorChanged() && getByLocator(lineTemplate).contains("%s")) return getElementByTemplate(index); return locatorChanged() ? getElementByTemplate(index) : getLineAction(index); } private List<WebElement> getElementByTemplate(Object value) {
public static <T> T last(T[] list, JFuncTREx<T, Boolean> func) { return last(asList(list), func); }
public void removeByKey(K key) { pairs.remove(LinqUtils.firstIndex(pairs, pair -> pair.key.equals(key))); }
public static <T extends Enum> String[] getAllEnumNamesAsArray(Class<T> enumValue) { return LinqUtils.toStringArray(getAllEnumNames(enumValue)); } }
public static <T> T single(T[] array, JFuncTREx<T, Boolean> func) { return single(asList(array), func); } public static <T> int firstIndex(List<T> list, JFuncTREx<T, Boolean> func) {
protected List<WebElement> getLineAction(String lineName) { int index = getIndex(headers(), lineName) + 1; if (lineTemplate != null && getByLocator(lineTemplate).contains("%s")) return getElementByTemplate(index); return (lineTemplate == null) ? getLineAction(index) : getElementByTemplate(index); } private List<WebElement> getElementByTemplate(Object value) {
private WebElement getWebElement(List<WebElement> els, String name) { if (els == null) throw exception("Can't get option. No optionsNamesLocator and allLabelsLocator found"); List<WebElement> elements = where(els, el -> el.getText().equals(name)); if (elements != null && elements.size() == 1) return elements.get(0); throw exception("Can't get option. No optionsNamesLocator and allLabelsLocator found"); }
public <T> T asEntity(Class<T> entityClass) { try { T data = newEntity(entityClass); foreach(getFields(this, IHasValue.class), item -> { Field field = LinqUtils.first(getFields(data, String.class), f -> namesEqual(f.getName(), item.getName())); if (field == null) return; try { field.set(data, ((IHasValue) getValueField(item, this)).getValue()); } catch (Exception ignore) { } }); return data; } catch (Exception ex) { throw exception("Can't get entity from Form" + getName() + " for class: " + entityClass.getClass()); } }
protected void selectListAction(String... names) { foreach(names, this::selectAction); }
private List<WebElement> getElementsByCondition(JFuncTREx<WebElement, Boolean> condition) { List<WebElement> elements = timer().getResultByCondition( this::searchElements, els -> any(els, getSearchCriteria())); if (elements == null || elements.size() == 0) return new ArrayList<>(); return elements.size() < 10 ? where(elements, condition) : elements; }