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

Vitalik_V

Регистрация: 23 июл 2007
Offline Активность: 16 апр 2017 07:07
*****

#159651 Запуск тестов один за другим

Написано Vitalik_V 14 апреля 2017 - 08:42

По Вашему описанию проблемы, можно ответить только - видимо что-то случилось...
  • 1


#120821 div извлечь текст

Написано Vitalik_V 12 августа 2013 - 13:16

Друзья, задача вроде бы простейшая: http://pogoda.mail.ru/photo_list.html извлечь отображаемый текст из тегов

<div class="previews__item__descr">п. Лазурный</div>

но

from selenium import webdriver

page = webdriver.Firefox()

try:
    page.get("http://pogoda.mail.ru/photo_list.html")
    lDivs = page.find_elements_by_tag_name('div')
    for eDiv in lDivs:
        sClass = eDiv.get_attribute('class')
        if sClass and (sClass == "previews__item__descr"):
            sValue = eDiv.get_attribute('text')
            if sValue:
                print(sValue + '\n')
finally:
    page.quit()

почему результат пустой? Смена на поиск по XPath не помогает.

Я не силен в питоне, но по идее должно быть так: sValue = eDiv.text
  • 2


#120643 Переключение к основному окну после закрытия нового

Написано Vitalik_V 06 августа 2013 - 11:09

Всем привет.
Использую Wberiver+eclipse
В тесте происходит нажатие кнопки, по которому открывается новое окно, переключаюсь на это окно, делаю необходимые операции, далее жму кнопку "Выход" и окно закрывается.
Вот собственно вопрос, как переключиться обратно на основное окно?
Для переключения на новое использую следующую конструкцию:

Set<String> oldWindowsSet = driver.getWindowHandles(); // получаем набор дескрипторов текущих открытых окон
ExitButton.click();
Set<String> newWindowsSet = driver.getWindowHandles(); // получаем новый набор дескрипторов
newWindowsSet.removeAll(oldWindowsSet);
String newWindowHandle = newWindowsSet.iterator().next(); // получаем дескриптор нового окна
driver.switchTo().window(newWindowHandle); // переключаемся на новое окно

Подобным образом переключить на основное не получается, т.к. driver.getWindowHandles() возвращает только одно окно и соответственно newWindowsSet.iterator().next() возвращает NoSuchWindowException.
Мне кажется есть какой то простой способ переключить фокус на единственное окно.
Если ничего не делать то также ошибка Unable to find element on closed window

Попробуйте сохранить ид основного окна перед открытием нового: String oldWindow = getWindowHandle();
и потом переключиться на него через driver.switchTo().window(oldWindow);
  • 1


#118662 Method 'InitializationError' not found

Написано Vitalik_V 13 июня 2013 - 10:59

Добрый день, сегодня я попытался добавить к себе в Eclipse Java новый проект. И как только я это сделал и попробывал запустить "Run". Мне выбило ошибку "Method 'InitializationError' not found. Open the test class." Пробывал удалить проект и залить снова, пробывал переустановить Eclipse. Пробывал переустановить Java и перезагружал компьютер, в конечном итоге создал вообще левый проект и на нем, в обычном example тоже ничего не запускается. Очень прошу, помогите пожалуйста) Уже руки опускаются, а дело срочное....Скриншоп прилагается.

Похоже, что эклипс потерял джарники вебдрайвера... Пробовали ух удалять и заново добавлять в проект?
  • 1


#117809 Попасть в поле с динамическим ID

Написано Vitalik_V 15 мая 2013 - 09:32

Добрый день!
И еще раз про поле с изменяющимся ID. Есть форма, слева названия полей, справа собственно поля. Каждый раз при загрузке полей у них меняется ID, Name итд. Не меняется только названия полей. Требуется ввести текст в поле.
Код, описывающий поле с названием "Название" :)

<tbody id="card-MM-27-new-record-edit-MM-28" class="x-field x-form-item x-field-default x-form-form-item x-form-invalid" 
style="border-width: 0px; table-layout: fixed;">
	<tr id="card-MM-27-new-record-edit-MM-28-inputRow">
		<td id="card-MM-27-new-record-edit-MM-28-labelCell" class="x-field-label-cell" width="105" valign="top" halign="left" style="">
		<label id="card-MM-27-new-record-edit-MM-28-labelEl" class="x-form-item-label x-form-item-label-left" 
		style="width:100px;margin-right:5px;" for="card-MM-27-new-record-edit-MM-28-inputEl">Название:</label>
		</td>
		<td id="card-MM-27-new-record-edit-MM-28-bodyEl" class="x-form-item-body " role="presentation" colspan="2" style="width: 100%;">
		<input id="card-MM-27-new-record-edit-MM-28-inputEl" class="x-form-field x-form-required-field x-form-text x-form-invalid-field" 
		type="text" autocomplete="off" style="width: 100%; -moz-user-select: text;" 
		name="card-MM-27-new-record-edit-MM-28-inputEl" size="1" aria-invalid="true" data-errorqtip="<ul><li>This field is required</li></ul>">
		</td>
	</tr>
</tbody>
Понимаю, что надо как то связать лабел "Название:" с соседним полем input id="card-MM-27-new-record-edit-MM-28-inputEl" с типом "Текст", но не умею. Помогите пожалуйста.


//label[text()='Название']/parent::td/following-sibling::td/input
  • 1


#116281 Подсчет трудозатрат

Написано Vitalik_V 26 марта 2013 - 12:12

Добрый день, коллеги.
Подскажите пожалуйста, примерно, во сколько времени можно оценить разработку набора автоматизированных тестов web - приложения типа "интернет-банк" на платформе Silenium 2.0, условия оценки:
- человек 1
- навыки работы с инструментом базовые (Selenium IDE)
- язык разработки - Java (базовые навыки)
- пока исключительно для IExplorer

В расчет, имеет смысл включить время на изучение инструментария, планируется связка Eclipse + TestNG + Selenium 2.0

Из опыта, могу сказать, что ОЧЕНЬ примерно это будет = время на ручной прогон тестов * 10 + буфер в 20%
  • 1


#111282 Поиск элемента без текста

Написано Vitalik_V 24 октября 2012 - 07:19

Всем доброго дня! Возник такой вот вопрос. Имеется особого вида комбобокс (не стандартный select). Провожу поиск элементов по xpath: по наличию особого атрибута и по тексту. Однако, имеется элемент, который не содержит текста. Поиск по text()='' не возвращает этот элемент. Есть ли способ определить, что какой-либо элемент не содержит текста?
Поиск элементов с текстом провожу следующим запросом: //div[contains(@class,'x-combo-list-item') and text()='Код продукта'].
Код элементов:

<div class="x-combo-list-item x-combo-selected"/>
<div class="x-combo-list-item">Код продукта</div>
<div class="x-combo-list-item">Наименование продукта</div>

Сразу скажу, что делать завязку на x-combo-selected нельзя, т.к. этот атрибут переменный. Временное решение проблемы - использование //div[contains(@class,'x-combo-list-item')]. Элемент без текста у нас идет самым первым. Однако, нет гарантии, что он всегда будет первым.

//div[contains(@class,'x-combo-list-item') and string-length(text())<1]
  • 1


#106982 Проблема с проверкой текста элемента

Написано Vitalik_V 22 июня 2012 - 08:35

без if всё прекрасно работает...может,кодировка не та ? Как тогда проверять ?

Это java?!

if(button_text.trim().equals("ВХОД")){.....
  • 1


#106501 Выполнение JS в Java

Написано Vitalik_V 08 июня 2012 - 12:16

Здравствуйте.
Подскажите , пожалуйста, что мне надо изменить в моем коде.

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");

engine.eval("window.scrollby(100,100)");

Чтобы не получать ошибку в выполнение JS о том, что он не знает о каком window идет речь?
javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "window" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1
Как ему объяснить, что это то самое окно, по которому он как раз и ходит?
Спасибо.

Попробуйте так.
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("javascript:window.scrollBy(100,100)");
  • 1


#104914 Не выполняются команды selenium внутри класса

Написано Vitalik_V 26 апреля 2012 - 12:34


Объкт селениума обьявлен как static?

В классе теста (нужен для остановки сервера) и в моем классе объявлен вот так:
private Selenium selenium;

Получается, что Вы в своем классе и классе с тестами, работаете с разными объектами типа Selenium. Скорре всего у вас isElementPresent падает с NullPointer, но Вы этого не видите, т.к завернули его в try/catch.

Уберите в своем классе это
private Selenium selenium;
- и в родительском проверте чтоб было -
protected static Selenium selenium;

  • 1


#104911 Как посчитать количество строк в таблице?

Написано Vitalik_V 26 апреля 2012 - 12:20

Вопрос в названии темы. Пишу примерно так

int count;
count = driver.findElement(By.xpath("id_tb")).size()

Подчеркивает size() красным, говорит что не знает что это такое. Пробовал Count, lenght, getSize(), getLenght, getCount, тоже ничего не получается. Подскажите как это сделать

driver.findElement(By.xpath("id_tb")).size() тут должно быть findElementS
  • 1


#103927 пересылка кода подтверждения на телефон

Написано Vitalik_V 10 апреля 2012 - 20:32


Что именно? Доставку сообщения на телефон или сам код?


ну надо бы как-то вытащить именно код. факт прихода сообщения думаю не так важен, если что, это и руками можно проверить.
тут вся проблема заключается в том, что нет возможности автоматизировать процесс регистрации пользователя, из-за того, что без ввода кода не получится зарегистрироваться


По идее эти коды должны складываться в базе. Уточните это у программистов. Если да, попросите доступ к базе и можете получать код простым запросом.
  • 1


#102296 проверка состояния теста

Написано Vitalik_V 15 марта 2012 - 10:40

при написания некоторых тестов в связке селениум+тестнг возникла потребность узнавать завалился тест или нет...
т.е при условии, что тест падает, мне необходимо делать скриншот...так вот как из кода проверить прошел тест или нет ?.. есть ли вообще такая возможность, ибо писать if в каждом методе как-то не айс.
заранее благодарен

Можно создать свой TestListener и в методе onTestFailure делать скрин.
инфа тут http://testng.org/ja...stListener.html
  • 1


#100783 Запуск тест-сьютов по расписанию

Написано Vitalik_V 09 февраля 2012 - 13:14

Всех тестировщиков приветствую. Недавно пополнил ваши ряды, поэтому являюсь новичком.
Создание кейсов/сьютов освоил. Поставил selenium2 и eclipse, кейсы конвертятся из IDE в Java и запускаются на ура.

А вопрос заключается в следующем. У меня стоит задача поднять круглосуточное тестирование основных функций сайта. Например, авторизация. Допустим, пускай тест стартует каждые полчаса. А в случае неудачи шлёт емейл. На чем это будет сделать наиболее удобно и с минимумом трудозатрат? Спасибо за ответы!

Тут лучше настроить CI сервер. Jenkins, TeamCity и т.д
  • 1


#100008 клик только по видимому элементу

Написано Vitalik_V 25 января 2012 - 16:13

создавая тесты, я сталкиваюсь с проблемой того, что мне нужно щелкнуть только по видимому элементу выпадающего меню. но дело в том, что таких меню может быть несколько и селектор в них одинаков, помимо айдишников, на которые расчитывать нельзя, поскольку написани они на ExtJS и каждый раз меняются и помимо появления display:none. Есть ли какая-либо селениум-команда для того чтоб щелкнуть только по видимому элементу?

Обращайтесь к элементу по xpath. Он уникален
  • 1