Селен - Как захватить все элементы веб-страницы и связанные локаторы на странице?

Какие команды Java/Selenium можно использовать для захвата / получения / вывода всех элементов и связанных локаторов элементов для одной веб-страницы? Selenium IDE позволяет проверять один элемент за раз. Это проблема, если у вас есть тысячи элементов для автоматизации. Есть ли инструмент или команда Java/selenium, которые я могу использовать для одновременного получения всех объектов / элементов на моей веб-странице, а затем, возможно, настроить вывод в соответствии с моими потребностями? Если у вас есть опыт работы с SilkTest, я бы хотел что-то аналогичное созданию оконных объявлений в SilkTest. Инструмент объявления окна записи SilkTest собирает информацию о тегах / свойствах / локаторах для всех объектов / элементов на странице и позволяет вставить код в вашу библиотеку или включаемый файл. Таким образом, одним или двумя щелчками мыши я могу захватить и определить десятки объектов в SilkTest. Есть ли инструмент или команда, которая делает что-то подобное для Selenium? Я использую Java, поэтому я хотел бы получить любые примеры на Java. Благодарю.

4 ответа

Использование findElementsByXPath и указание "Все элементы" работало для меня. Например

findElementsByXPath("//*")

http://www.w3schools.com/xml/xpath_syntax.asp

Существует расширение Chrome - Selenium Page Object Generator, который генерирует класс.java, имеющий все локаторы страницы для объектной модели страницы. Это довольно круто. Проверьте это!!

https://chrome.google.com/webstore/detail/selenium-page-object-gene/epgmnmcjdhapiojbohkkemlfkegmbebb

Вы можете не найти никакой "функции", которая поставляется вместе с селеном для этого. Вам придется использовать некоторые инструменты, такие как

Firebug, веб-разработчик

(оба являются расширениями Firefox), чтобы найти путь локаторов xpath / css, который вам нужен. Кроме того, зачем вам нужно "все" элементы? Шансы использовать "все" элементы на странице могут быть очень меньше, я чувствую. Самый простой способ (который, я думаю, вы уже делаете) - это использовать IDE для создания прототипа вашего тестового примера, а затем использовать Firebug или аналогичные инструменты для оптимизации xpath.

List<WebElement> el = driver.findElements(By.xpath("//*"));
            int count=0;
            for ( WebElement e : el ) {
             System.out.println( e.getTagName()+"    "+e.getText());

             count++;

            }
          System.out.println(count );
Другие вопросы по тегам