julia_v_iluhina

Untitled

Sep 30th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.28 KB | None | 0 0
  1. public interface Command <T extends WebElement, T1> {
  2.     <T1>T1 run(T wrappedEntity);
  3. }
  4.  
  5. /*
  6.     а зачем тебе первый тип T extends WebElement?
  7.  
  8.     он же всегда будет WebElement )
  9.  
  10.     для коллекций нам такое без надобности )
  11.  
  12.     упрости интерфейс
  13.     и перемести его в src / main / java / ui / net / itlabs / core
  14. */
  15. public interface Command<TypeOfResult> {
  16.     TypeOfResult run(WebElement element);
  17. }
  18. ************************************
  19. public class ElementCommands {
  20.     public static <T>T runCommand(LazyElement element, Condition<WebElement> condition, Command<WebElement, T> command){
  21.         return command.run(waitFor(element).until(condition));
  22.     }
  23. }
  24. /*
  25.     по сути - ты все равно сначала ждешь, а потом делаешь команду
  26.  
  27.     а идея была - ускорить
  28.     т к возможно - и ждать ничего не надо
  29.  
  30.     реализуй вот так
  31.         в try-catch секции выполняем команду
  32.         ловим WebDriverException
  33.         и уже если не вышло (словили исключение)
  34.         то делаем - как ты реализовала - ждем и делаем действие
  35.  
  36.     как заработает - то преобразуй этот класс ElementCommands
  37.     в класс WithWaitFor
  38.  
  39.     так, чтобы ты могла использовать
  40. */
  41.  
  42.         new WithWaitFor(this, visible()).run(new Command<WebElement>() {
  43.             public WebElement run(WebElement element) {
  44.                 ...
  45.             }
  46.         });
  47. или даже
  48.  
  49.         withWaitFor(this, visible()).run(new Command<WebElement>() {
  50.             public WebElement run(WebElement element) {
  51.                 ...
  52.             }
  53.         });
  54.  
  55.  
  56. /*
  57.     тот же прием в принципе - что и в WaitFor
  58.    
  59.     как раз разберешь его как следует
  60.    
  61.     ну и остальное - переделывай)
  62.    
  63.     тему поймала
  64.     дальше - дело техники
  65.  
  66.     этот класс тоже перемести в src / main / java / ui / net / itlabs / core
  67.  
  68. */
Advertisement
Add Comment
Please, Sign In to add comment