В автоматизации поиск всех ссылок или других элементов довольно полезное задание. Иногда приходится найти их количество или проверить, что они не битые и не появляется 404 страница.
Чтобы собрать массив всех ссылок проделайте следующие шаги:
1) Перейдите на интересующий сайт, например http://autoqa.org/.
2) Создайте список типа WebElement для сохранения всех ссылок.
3) Соберите все теги “a”, то есть ссылки.
4) Теперь можно пробежаться по всем ссылкам и вывести их текст в консоли.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package login.package1; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class FindAllLinks { public static void main(String[] args) { WebDriver driver = new FirefoxDriver(); driver.get("http://autoqa.org"); java.util.List<WebElement> links = driver.findElements(By.tagName("a")); System.out.println(links.size()); for (int i = 0; i<links.size(); i++) { System.out.println(links.get(i).getText()); } } } |
В консоли появится результат:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
34 khimiy.maxym@gmail.com ГЛАВНАЯ БЛОГ КАРТА САЙТА УСТАНОВКА WEBDRIVER В ECLIPSE СОВЕТЫ И ТРЮКИ TESTNG DATA-DRIVING С ИСПОЛЬЗОВАНИЕМ EXCEL ЛОГИРОВАНИЕ MAVEN FRAMEWORK Читать далее Читать далее Читать далее ЧИТАТЬ Autoqa – Практика автоматизированного тестирования программного обеспечения – Software Test Automation |
Таким самым образом можно найти любой Web элемент на странице:
Поиск всех Check-боксов на странице:
|
1 |
java.util.List<WebElement> checkboxes = driver.findElements(By.xpath("//input[@type='checkbox']")); System.out.println(checkboxes.size()); |
Поиск всех меню на странице:
|
1 2 |
java.util.List<WebElemen> dropdown = driver.findElements(By.tagName("select"); System.out.println(dropdown.size()); |
Поиск количества меню на странице:
|
1 |
java.util.List<WebElement> textboxes = driver.findElements(By.xpath("//input[@type='text'[@class='inputtext']")); System.out.println(textboxes.size()); |