Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pom.xml - можно упростить
- версию селениума 2.53.1 - тоже можно использовать (у тебя кстати то так, то так с версиями)
- ...
- <dependencies>
- <dependency>
- <groupId>org.seleniumhq.selenium</groupId>
- <artifactId>selenium-java</artifactId>
- <version>2.53.0</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.12</version>
- </dependency>
- </dependencies>
- </project>
- *******************************************************
- @Test
- public void testSearchAndFollowLink(){
- WebDriver driver = new FirefoxDriver();
- ....
- driver.quit();
- }
- /*
- открытие вебдрайвера и закрытие - лучше вынеси из тест-метода
- это логика тест-класса, а не тест-метода
- если параллелизация не нужна(а она пока не нужна)
- то в BeforeClass-методе - создай вебрайвер
- а в AfterClass-методе - убей
- ну или как-то по-другому, но с аналогичным эффектом
- перед запуском всех тест-методов - создали вебдрайвер
- после работы всех тест-методов - убили
- так, кстати, он будет всегда корректно убиваться )
- даже если тест упадет)
- в твоем варианте - вот эта строка кода - driver.quit(); - может и не отработать
- если тест упадет раньше
- рядом с вебдрайвером - можно сразу озаботиться переменной WebDriverWait wait = new WebDriverWait(driver, 10);
- нам тоже подойдет - если она будет общей в рамках всего тест-класса
- да и тест-метод разгрузится
- */
- ********************************************************
- wait.until(ExpectedConditions.numberOfElementsToBe(By.cssSelector(".srg .g"),10));
- /*
- да, верно нашла и верно применила кондишен
- была, правда, цель - чтобы уже в этом задании студент чуть поразбирался в написании кондишенов)
- такая странная просьба - закомменть эту строку
- (чтобы когда будешь смотреть на код потом - вспомнила о стандартном кондишене)
- и вместо нее - напиши другую, с использованием кондишена sizeOf - который реализуешь сама
- (пример в материалах перед заданием - есть)
- можешь сразу разместить такое кондишен в классе CustomConditions (а его - в ветке src \ main)
- */
- wait.until(textToBePresentInElementLocated(By.cssSelector(".srg .g:nth-child(1)"),"Selenium automates browsers"));
- driver.findElement(By.cssSelector(".srg .g:nth-child(1) a")).click();
- /*
- вот тут - мы уже дождались, что в списке результатов - есть результаты, и даже дождалить текста первого результата
- и тут - можно написать аналог results.get(0).$(".r>a").click();
- получить список результатов, обратиться к такому-то, получить его главную линку
- перепиши в таком виде
- можешь в рамках подготовки к следующему заданию - сразу реализовать метод followLink(int index)
- */
- ExpectedConditions.urlToBe("http://www.seleniumhq.org/");
- /*
- такая строка - не будет выполнять ждущую проверку
- а лишь вернет тебе кондишен
- используй wait.until(...
- */
Add Comment
Please, Sign In to add comment