Перейти к содержимому

Тестирование веб-приложений 2.0
онлайн, начало 25 января
Тестирование REST API
онлайн, начало 28 января
SQL для тестировщиков
онлайн, начало 28 января
Техники локализации плавающих дефектов
онлайн, начало 28 января
Фотография

"Не видно" элементов внутри <body>.

#findElement

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 Neofrin

Neofrin

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Neofrin

Отправлено 25 Май 2018 - 07:21

java+selenium web driver (ie). Мне нужно кликнуть на элемент Прикрепленный файл  скрин.png   342,12К   0 Количество загрузок:, но selenium не видит элементы внутри <body>. Прошу подсказать, почему "не видит" и как мне обратиться к нужному элементу. Пробовал обращаться через xpath, className, tagName - тщетно. Для понимания картины:
 
try{
 
            WebElement element = driver.findElement(By.xpath("html"));
            List<WebElement> childs = element.findElements(By.xpath("./*"));
            Iterator it = childs.iterator();
            while(it.hasNext()) {
                WebElement elem = (WebElement) it.next();
                driver.manage().timeouts().implicitlyWait(1, SECONDS);
                System.out.println(elem.getTagName() + " ");
            }
            //System.out.println(element.getTagName());
        }catch (NoSuchElementException e){
            System.out.println("Oooppppss. NoSuchElement");
        }
Консоль:
head
body
 
        try{
            WebElement element = driver.findElement(By.xpath("html/head"));
            List<WebElement> childs = element.findElements(By.xpath("./*"));
            Iterator it = childs.iterator();
            while(it.hasNext()) {
                WebElement elem = (WebElement) it.next();
                driver.manage().timeouts().implicitlyWait(1, SECONDS);
                System.out.println(elem.getTagName() + " ");
            }
        }catch (NoSuchElementException e){
            System.out.println("Oooppppss. NoSuchElement");
        }
Консоль:
title
meta
Exception in thread "main" org.openqa.selenium.StaleElementReferenceException: Element is no longer valid ...
 
        try{
            WebElement element = driver.findElement(By.xpath("html/body"));
            List<WebElement> childs = element.findElements(By.xpath("./*"));
            Iterator it = childs.iterator();
            while(it.hasNext()) {
                WebElement elem = (WebElement) it.next();
                driver.manage().timeouts().implicitlyWait(1, SECONDS);
                System.out.println(elem.getTagName() + " ");
            }
        }catch (NoSuchElementException e){
            System.out.println("Oooppppss. NoSuchElement");
        }
В консоли пусто (в смысле вот это "System.out.println(elem.getTagName() + " ")" ничего не вывело).
 
 
 
 

  • 0

#2 Spock

Spock

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 239 сообщений
  • ФИО:Роман

Отправлено 04 Июнь 2018 - 09:14

выведите на консоль getpagesource


  • 0

#3 Neofrin

Neofrin

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Neofrin

Отправлено 05 Июнь 2018 - 10:33

выведите на консоль getpagesource

Да, страница после запуска выполняла обновление, поэтому искомый элемент и не был обнаружен. Помогла вставка данного кода после вызова driver.get("...");:

String currentWindow = driver.getWindowHandle();
for(String winHandle : driver.getWindowHandles()){
if(!winHandle.equals(currentWindow)){
driver.switchTo().window(winHandle);
}
}

Спасибо.


  • 0


Первый Онлайн ИНститут Тестировщиков
онлайн
Школа для начинающих тестировщиков
онлайн
Логи как инструмент тестировщика
онлайн
Selenium 2.0: стартовый уровень
онлайн



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале