julia_v_iluhina

Untitled

Jul 26th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.26 KB | None | 0 0
  1. pom.xml - можно упростить
  2. версию селениума 2.53.1 - тоже можно использовать (у тебя кстати то так, то так с версиями)
  3. ...
  4. <dependencies>
  5.         <dependency>
  6.             <groupId>org.seleniumhq.selenium</groupId>
  7.             <artifactId>selenium-java</artifactId>
  8.             <version>2.53.0</version>
  9.         </dependency>
  10.  
  11.         <dependency>
  12.             <groupId>junit</groupId>
  13.             <artifactId>junit</artifactId>
  14.             <version>4.12</version>
  15.         </dependency>
  16.  
  17.     </dependencies>
  18.  
  19.     </project>
  20. *******************************************************
  21.  @Test
  22.     public void testSearchAndFollowLink(){
  23.  
  24.         WebDriver driver = new FirefoxDriver();
  25.         ....
  26.         driver.quit();
  27.     }
  28. /*
  29.         открытие вебдрайвера и закрытие - лучше вынеси из тест-метода
  30.         это логика тест-класса, а не тест-метода
  31.        
  32.         если параллелизация не нужна(а она пока не нужна)
  33.         то в BeforeClass-методе - создай вебрайвер
  34.         а в AfterClass-методе - убей
  35.         ну или как-то по-другому, но с аналогичным эффектом
  36.         перед запуском всех тест-методов - создали вебдрайвер
  37.         после работы всех тест-методов - убили
  38.         так, кстати, он будет всегда корректно убиваться )
  39.         даже если тест упадет)
  40.         в твоем варианте - вот эта строка кода - driver.quit(); - может и не отработать
  41.         если тест упадет раньше
  42.  
  43.         рядом с вебдрайвером - можно сразу озаботиться переменной WebDriverWait wait = new WebDriverWait(driver, 10);
  44.         нам тоже подойдет - если она будет общей в рамках всего тест-класса
  45.         да и тест-метод разгрузится
  46. */
  47. ********************************************************
  48.         wait.until(ExpectedConditions.numberOfElementsToBe(By.cssSelector(".srg .g"),10));
  49.         /*
  50.             да, верно нашла и верно применила кондишен
  51.             была, правда, цель - чтобы уже в этом задании студент чуть поразбирался в написании кондишенов)
  52.             такая странная просьба - закомменть эту строку
  53.             (чтобы когда будешь смотреть на код потом - вспомнила о стандартном кондишене)
  54.             и вместо нее - напиши другую, с использованием кондишена sizeOf - который реализуешь сама
  55.             (пример в материалах перед заданием - есть)
  56.             можешь сразу разместить такое кондишен в классе CustomConditions (а его - в ветке src \ main)
  57.         */
  58.         wait.until(textToBePresentInElementLocated(By.cssSelector(".srg .g:nth-child(1)"),"Selenium automates browsers"));
  59.  
  60.         driver.findElement(By.cssSelector(".srg .g:nth-child(1) a")).click();
  61.         /*
  62.             вот тут - мы уже дождались, что в списке результатов - есть результаты, и даже дождалить текста первого результата
  63.             и тут - можно написать аналог results.get(0).$(".r>a").click();
  64.             получить список результатов, обратиться к такому-то, получить его главную линку
  65.             перепиши в таком виде
  66.             можешь в рамках подготовки к следующему заданию - сразу реализовать метод followLink(int index)
  67.         */
  68.         ExpectedConditions.urlToBe("http://www.seleniumhq.org/");
  69.         /*
  70.             такая строка - не будет выполнять ждущую проверку
  71.             а лишь вернет тебе кондишен
  72.             используй wait.until(...
  73.         */
Add Comment
Please, Sign In to add comment