Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public interface Command <T extends WebElement, T1> {
- <T1>T1 run(T wrappedEntity);
- }
- /*
- а зачем тебе первый тип T extends WebElement?
- он же всегда будет WebElement )
- для коллекций нам такое без надобности )
- упрости интерфейс
- и перемести его в src / main / java / ui / net / itlabs / core
- */
- public interface Command<TypeOfResult> {
- TypeOfResult run(WebElement element);
- }
- ************************************
- public class ElementCommands {
- public static <T>T runCommand(LazyElement element, Condition<WebElement> condition, Command<WebElement, T> command){
- return command.run(waitFor(element).until(condition));
- }
- }
- /*
- по сути - ты все равно сначала ждешь, а потом делаешь команду
- а идея была - ускорить
- т к возможно - и ждать ничего не надо
- реализуй вот так
- в try-catch секции выполняем команду
- ловим WebDriverException
- и уже если не вышло (словили исключение)
- то делаем - как ты реализовала - ждем и делаем действие
- как заработает - то преобразуй этот класс ElementCommands
- в класс WithWaitFor
- так, чтобы ты могла использовать
- */
- new WithWaitFor(this, visible()).run(new Command<WebElement>() {
- public WebElement run(WebElement element) {
- ...
- }
- });
- или даже
- withWaitFor(this, visible()).run(new Command<WebElement>() {
- public WebElement run(WebElement element) {
- ...
- }
- });
- /*
- тот же прием в принципе - что и в WaitFor
- как раз разберешь его как следует
- ну и остальное - переделывай)
- тему поймала
- дальше - дело техники
- этот класс тоже перемести в src / main / java / ui / net / itlabs / core
- */
Advertisement
Add Comment
Please, Sign In to add comment