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

Фотография

Вопросы по миграции с Sekenium 1.0 на 2.0


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

#1 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 11 июля 2011 - 15:24

Здравствуйте ! Помогите пожалуйста с миграцией Selenium 1.0 на 2.0. Пишет следующую ошибку
при запуске теста
java.lang.NoClassDefFoundError: com/google/common/base/Function

на линии

WebDriver driver = new ChromeDriver();

где же взять этот класс ?
  • 0

#2 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 11 июля 2011 - 15:29

Самый простой способ: подключать в classpath не библиотеку selenium-java-2.0.jar, а selenium-server-standalone-2.0.jar , она содержит всё -- и сервер (в том числе грид), и клиентскую часть, и все вспомогательные библиотеки. Ну и весит почти 25 мегабайт, да :)
  • 1
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#3 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 11 июля 2011 - 15:29

Кстати, про Хром внимательно читать тут: http://code.google.c...ki/ChromeDriver
  • 1
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#4 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 12 июля 2011 - 09:20

спасибо Алексей ! помогло)
  • 0

#5 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 12 июля 2011 - 10:05

barancev, Алексей , появилась следующая проблема :
почему то не видит поле для ввода пароля , а в полях для ввода логина и имейла все ок
для поля пароля используется jQuery, для остальных нет
  • 0

#6 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 12 июля 2011 - 13:04

почему то не видит поле для ввода пароля , а в полях для ввода логина и имейла все ок
для поля пароля используется jQuery, для остальных нет

С такой скудной входной информацией Вам ответ дадут лишь в передаче "Битва экстрасенсов" :)
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#7 phunq

phunq

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:ВА

Отправлено 13 июля 2011 - 11:50

скачали на днях релиз selenium 2.0 и пытаемся заменить бету
сразу бросилось в глаза - в классе WebElement теперь отсуствует метод getValue()
ранее он использовался для получение значений из эдитов и textarea - getText() тогда ничего не возвращал

что нужно использовать теперь?
  • 0

#8 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 13 июля 2011 - 18:16

Либо getAttribute("value"), либо getText()
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#9 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 14 июля 2011 - 12:09


почему то не видит поле для ввода пароля , а в полях для ввода логина и имейла все ок
для поля пароля используется jQuery, для остальных нет

С такой скудной входной информацией Вам ответ дадут лишь в передаче "Битва экстрасенсов" :)


Вот код теста :
WebDriver driver = new FirefoxDriver();
			Selenium selenium = new WebDriverBackedSelenium(driver, Env.url1);
			WebElement element;
		    selenium.windowMaximize();
		    //selenium.windowFocus();
            //Alt_Tab.Browser();
		    selenium.open("/");
			Reporter.log(Env.currdt + "  " + tc + " <b>Тест успешно запущен.</b>");
			selenium.waitForPageToLoad("30000");
			Thread.sleep(5000);
			//selenium.type("input-invite_name", "Pamella Andersen");
            element = driver.findElement(By.id("input-invite_name"));  
			element.sendKeys("Pamella Andersen");
			//selenium.type("input-invite_email", Env.User3);
            element = driver.findElement(By.id("input-invite_email"));  
			element.sendKeys(Env.User3);
			//selenium.type("input-invite_pass", Env.psw);
            element = driver.findElement(By.id("input-invite_pass"));  
			element.sendKeys(Env.psw);

Выдает ошибку :
FAILED: Case003OrderChk
org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with
Build info: version: '2.0.0', revision: '12817', time: '2011-07-07 19:14:12'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_24'

на линии element.sendKeys(Env.psw)
  • 0

#10 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 14 июля 2011 - 18:04

Предполагаю, что элемент (поле ввода) невидимый, точнее -- он показывается только при наведении мыши (а до этого на его месте показывается какой-то другой).
Поэтому попытка ввести текст в невидимое поле завершается с такой диагностикой.
Хорошо бы взглянуть на код страницы.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#11 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 15 июля 2011 - 08:48

Предполагаю, что элемент (поле ввода) невидимый, точнее -- он показывается только при наведении мыши (а до этого на его месте показывается какой-то другой).
Поэтому попытка ввести текст в невидимое поле завершается с такой диагностикой.
Хорошо бы взглянуть на код страницы.


Алексей , абсолютно верно . При клике панель менялась на другую панель, которая до клика была инвизибл. Спасибо большое

Кстати говоря, в Selenium 1.0.* такое не проявлялось. Он просто находил этот элемент страницы, который был инвизибл, вводил текст и не выеживался
  • 0

#12 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 15 июля 2011 - 09:00

Значит Селениум действительно доводят до ума...
Это правильная работа, раз пользователь не может ничего ввести в невидимое поле, то и инструмент не должен
  • 0

#13 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 15 июля 2011 - 11:44

Следующий несколько вопросов )
1.Как мне заменить вот эту строку
if (selenium.isElementPresent("//img[@alt='Товар']")) {}
2.Как вытащить текст алерта(чем заменить GetAlert)
  • 0

#14 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 17 июля 2011 - 14:16

1.Как мне заменить вот эту строку
if (selenium.isElementPresent("//img[@alt='Товар']")) {}

Есть два варианта:
1. Получать список элементов, удовлетворяющих запросу, и проверять, пуст он или нет:
List<WebElement> images = driver.findElements(By.xpath("//img[@alt='Товар']"));
		if (images.size() > 0) {
			WebElement firstImage = images.get(0);
			// do something with this image
		}


2. Обернуть поиск в try-catch:
try {
			WebElement firstImage = driver.findElement(By.xpath("//img[@alt='Товар']"));
			// do something with this image
		} catch (NoSuchElementException e) {
			// element not found, do something else
		}

  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#15 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 17 июля 2011 - 14:19

2.Как вытащить текст алерта(чем заменить GetAlert)

Сначала надо кликнуть на кнопку, которая приводит к появлению алерта, а потом сделать так:
Alert alert = driver.switchTo().alert();
		String alertText = alert.getText();
		alert.accept();

  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#16 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 18 июля 2011 - 09:11

Спасибо, Алексей ! направили на верный путь )
  • 0

#17 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 18 июля 2011 - 12:06

возникла проблема с тем как заменить WaitForPageToLoad
пока использую паузы между переходами по URL , что не совсем правильно
  • 0

#18 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 18 июля 2011 - 13:05

Вот тут я уже отвечал про ожидания
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#19 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 19 июля 2011 - 08:47

спасибо, Алексей.
Возникла следующая проблема:

выдается ошибка о том что линк не найден
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"link text","selector":"Аккаунт"}

на линии
element = driver.findElement(By.linkText("Аккаунт"));

вот код этого линка
<a href="account.php">Аккаунт</a>

Подскажите пожалуйста
  • 0

#20 Leoxa

Leoxa

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

  • Members
  • Pip
  • 59 сообщений
  • ФИО:Алексей

Отправлено 19 июля 2011 - 09:21

спасибо, Алексей.
Возникла следующая проблема:

выдается ошибка о том что линк не найден
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"link text","selector":"0 товаров"}

на линии
element = driver.findElement(By.linkText("Аккаунт"));

вот код этого линка
<a href="account.php">Аккаунт</a>

Подскажите пожалуйста


странно, но ваш селениум ругается, что не может найти элемент с другим значением локатора.
  • 0


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

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