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

Публикации ekulgavaya

50 публикаций создано ekulgavaya (учитываются публикации только с 29 марта 2023)



#94131 не выбирается элемент списка

Отправлено автор: ekulgavaya 14 сентября 2011 - 07:26 в Selenium - Functional Testing

А если вместо списка селекта используются дивы, то такая конструкция не работает:
selenium.select("//div[@id='ext-gen374']", "label=Item 4");

Подскажите пожалуйста как побороться с ней:
<div id="ext-gen372" class="класс_нэйм1" style="...">
<div id="ext-gen374" class="класс_нэйм2" style="...">
<div class="класс_нэйм3">Item 1</div>
<div class="класс_нэйм3">Item 2</div>
<div class="класс_нэйм3">Item 3</div>
<div class="класс_нэйм3">Item 4</div>
<div class="класс_нэйм3">Item 5</div>...
</div>
</div>

Спасибо



Во-первых, циферка в айдишке после каждого открытия страницы будет новая, поэтому к ней привязываться не нужно. Я бы попробовала искать элементы по классу
Сначала подождать пока что-то появится
waitForElementPresent("//div[@class='класс_нэйм1']/div[@class='класс_нэйм2']/div[@class='класс_нэйм3']")
А потом уже кликать
selenium.click("//div[@class='класс_нэйм1']/div[@class='класс_нэйм2']/div[@class='класс_нэйм3']")
или
selenium.click("css=div.класс_нэйм1>div.класс_нэйм2>div.класс_нэйм3")
или
selenium.click("//div[@class='класс_нэйм1']/div[@class='класс_нэйм2']/div[@class='класс_нэйм3'[i]]")
где i= от 0 до getXpathCount("//div[@class='класс_нэйм1']/div[@class='класс_нэйм2']/div[@class='класс_нэйм3']")



#93633 Не срабатывает click checkbox

Отправлено автор: ekulgavaya 02 сентября 2011 - 13:52 в Selenium - Functional Testing

Посмотрите в коде страницы, на каком именно элементе висит обработчик события, и какой именно обработчик



#93325 подтвердить что элемента нет на странице

Отправлено автор: ekulgavaya 29 августа 2011 - 08:35 в Selenium - Functional Testing

перегружается, не подойдет думаете?



Конечно подойдет) Просто способ другой) Тут уже подсказали.
1) WaitForPageToLoad(timeout)
2) assertFalse(selenium.isElementPresent(locator))



#93263 подтвердить что элемента нет на странице

Отправлено автор: ekulgavaya 26 августа 2011 - 15:48 в Selenium - Functional Testing

если страница не перегружается (ajax-ом удаляется), воспользуйтесь методом waitForElementNotPresent()



#93249 увеличить время ожидания ответа

Отправлено автор: ekulgavaya 26 августа 2011 - 13:44 в Selenium - Functional Testing

Похоже, это не проблема Seleniuma
http://netbeans.org/...g.cgi?id=190086
http://saucelabs.com...topic.php?id=65



#93239 увеличить время ожидания ответа

Отправлено автор: ekulgavaya 26 августа 2011 - 11:49 в Selenium - Functional Testing

Возможно проблема в чем-то другом. А какой порт вы используете? Проходили ли тесты раньше?








#93110 selenium + phpunit тесты

Отправлено автор: ekulgavaya 24 августа 2011 - 09:35 в Selenium - Functional Testing

Сама ссылка выглядит таким образом.

<a onclick="return confirm('Вы действительно хотите удалить?')" href="(ссылка)">удалить</a>


Это стандартный confirmation -> методы для обработки confirmation-ов должны работать.
А в чем собственно у вас проблема? Вы не видите это окошко при прогонке тестов? Тест валится на этой строчке?

В ИДЕ есть куча методов для работы с такими штуками, например:
waitForConfirmation,
assertConfirmation,
chooseCancelOnNextConfirmation
chooseOkOnNextConfirmation

Уверена, что найдете аналоги в своем языке)



#93060 увеличить время ожидания ответа

Отправлено автор: ekulgavaya 23 августа 2011 - 15:01 в Selenium - Functional Testing

ооо.... спасибо большое! видимо я как то невнимательно искала в инете. да и нетбинс мне этого метода не показывает...


yaw)



#93054 увеличить время ожидания ответа

Отправлено автор: ekulgavaya 23 августа 2011 - 13:48 в Selenium - Functional Testing

Почитала в интернетах. Есть у пхп такой метод
void setTimeout(int $timeout) - Set the timeout for the connection to the Selenium RC server.

http://www.phpunit.d...n/selenium.html
Вот здесь его видела

сколько бы времени я ни указывала в параметре waitForPageToLoad()

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



#93020 Очень хитрая форма регистрации на майл.ру

Отправлено автор: ekulgavaya 23 августа 2011 - 09:38 в Selenium - Functional Testing

Надоело баниться на местном форуме, хочу забаниться на mail.ru :)

ИзображениеИзображение





#92980 увеличить время ожидания ответа

Отправлено автор: ekulgavaya 22 августа 2011 - 12:34 в Selenium - Functional Testing

Нет, этот метод устанавливает именно тот таймаут, который вам нужен. Просто установить его нужно в самом начале теста, или хотя бы перед первой загрузкой "проблемной" страницы



#92978 увеличить время ожидания ответа

Отправлено автор: ekulgavaya 22 августа 2011 - 12:18 в Selenium - Functional Testing

есть метод setTimeout( milliseconds )



#92905 еще раз про sessionId should not be null; has this session been starte

Отправлено автор: ekulgavaya 19 августа 2011 - 15:50 в Selenium - Functional Testing

я так понимаю, что он, создавая экземпляр класса, пытается создать новую сессию???



У вас в классе Department есть переменная типа DefaultSelenium ?
я не знаю как в php идет объявление переменных.)
Если есть, то вот здесь
$dep->CreateDepartment("Подразделение 1");

Нужно добавить параметр selenium (или как он у вас называется). И в конструкторе CreateDepartment передать это значение в поле типа DefaultSelenium.

Непонятно объяснила?Изображение



#92900 еще раз про sessionId should not be null; has this session been starte

Отправлено автор: ekulgavaya 19 августа 2011 - 14:06 в Selenium - Functional Testing

Возможно, класс Department содержит поле типа Selenum. Тогда этот объект не инициализирован, и сответственно скрипт не может понять, что ему делать.
А
"//div[@id='instr']" 

можно заменить просто на "instr"



#92882 xpath для элементов, которые постоянно меняются местами

Отправлено автор: ekulgavaya 19 августа 2011 - 11:32 в Selenium - Functional Testing

Ну в принципе я бы в этой ситуации пошла и пнула девелопера, чтобы привязали нормальные айдишки, или name -ы.

Однако мне также представляется возможным следующее решение:
Не может же быть просто на скрине 7 инпутов, к ним должны быть подписи, или какие-либо другие опознавательные знаки. Можно попробовать через них как-то достучаться.



#92874 xpath для элементов, которые постоянно меняются местами

Отправлено автор: ekulgavaya 19 августа 2011 - 08:45 в Selenium - Functional Testing

Здравствуйте.

Привяжитесь к атрибуту type

"xpath=//input[@type='text']"
"css=input[type=text]"


"xpath=//input[@type='password']"
"css=input[type=password]"

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



#92632 Тест проходит успешно, но описанные действия для страницы не выполняют

Отправлено автор: ekulgavaya 15 августа 2011 - 12:59 в Selenium - Functional Testing

на Java это выглядит примерно так

public void waitForElement(java.lang.String elementName) throws InterruptedException {
        for (int second = 0; ; second++) {
            if (second >= 30) fail(" Element \"" + elementName + "\" isn't present");
            try {
                if (selenium.isElementPresent(elementName)) break;
            } catch (Exception e) {
            }
            Thread.sleep(1000);
        }
    }

Я бы рекомендовала несколько переопределить этот метод, поскольку ожидание указанных здесь 30-ти секунд может по факту занять несколько минут ( к примеру в ИЕ, с локаторами на Xpath.) Например вот так

	public void waitForElementPresent(String locator, int time) throws InterruptedException{
		long start = System.currentTimeMillis();
		while (System.currentTimeMillis() < start + time) {
			if ((selenium.isElementPresent(locator)))
				return;
			Thread.sleep(1000);
		}
		throw new AssertionError("The element " + locator + " still isn't present");
	}
Такой метод позволит вам контролировать время выполнения теста, поскольку ждать элемента вы будете ровно столько, сколько укажете в параметре time.



#92602 Тест проходит успешно, но описанные действия для страницы не выполняют

Отправлено автор: ekulgavaya 15 августа 2011 - 08:05 в Selenium - Functional Testing

Может конечно глупый вопрос, но вы точно дожидаетесь появления этих кнопок?
Ведь они априори есть на странице, и isElementPresent всегда вернет true. Но судя по всему после нажатия кнопки Next у вас идет обработка ajax запроса.
Попробуйте сначала поставить банальную паузу, и если это сработает продумать, как именно дождаться кнопки. (Возможно, как говорил Vitalik_V , дождаться например свойства Visible=true.)



#92551 Тест проходит успешно, но описанные действия для страницы не выполняют

Отправлено автор: ekulgavaya 12 августа 2011 - 15:21 в Selenium - Functional Testing

Подозреваю, что все кнопки Next имеют одинаковы айди, а поскольку страница не перезагружается, то элементы просто перекрываются друг другом визуально. Селениум естественно такое не видит, поэтому жмет на первую кнопку. То есть кнопка Next продолжает нажиматься на первом табе. Попробуйте в локаторе указать таб, на котором лежит кнопка. Примерно вот так:
"//div[@id='tabStep2']//a[@id='btnNext']"
или
"//div[@id='tabStep2']//input[@id='btnNext']"
Хотя подозреваю, что кнопка все-таки это тег <a>



#92529 элементы с одинаковыми характеристиками

Отправлено автор: ekulgavaya 12 августа 2011 - 08:12 в Selenium - Functional Testing

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


Я тоже думаю, что можно пропустить, проверьте просто, что появилось имя файла у пользователя. Мне кажется, этого будет достаточно.



#92513 элементы с одинаковыми характеристиками

Отправлено автор: ekulgavaya 12 августа 2011 - 06:16 в Selenium - Functional Testing

Ну теперь, если посмотреть на код, который вы присылали раньше, а именно вот сюда
<input type="file" name="myfile" id="myfile259_10" size="1" class="file-uploader" title="Редактировать" onchange="uploadFile('259_10', 7);">
Это код именно того элемента, по которому вы кликаете, обратите внимание на аттрибут id="myfile259_10"Теперь, если посмотреть на скрин, который вы прислали, вот здесьimg.png Видно, что Селениум даже и не пытается кликать по нему, и отлавливать форму загрузки файла ( она у вас очевидно стандартная), а сразу вводит в этот инпут путь к загружаемому файлу.


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



#92492 элементы с одинаковыми характеристиками

Отправлено автор: ekulgavaya 11 августа 2011 - 13:48 в Selenium - Functional Testing

Хм, а Вы уверены, что элемент подгрузился, к тому моменту когда скрипт на него нажимает?

там на событие клика по скрепке не появляется никакой команды


где не появляется?



#92480 элементы с одинаковыми характеристиками

Отправлено автор: ekulgavaya 11 августа 2011 - 11:13 в Selenium - Functional Testing

Вот более общий кусок кода. такого хватит?


Это немножко не то) Но исходя из этого кода можно сделать следующее
1) нумерацию (То самое i) привязывать вот к этому элементу
<div class="x-grid3-row ux-maximgb-tg-level-1   " style="width: 658px; ">
То есть локатор будет содержать следующее
div[contains(@class, 'ux-maximgb-tg-level-1')]
вместо ux-maximgb-tg-level-1 можно вставить только ту часть, которой этот класс отличается от остальных
2) Нужно будет каким-то образом указать элемент (общий, про который говорилось выше), где лежат эти div-ы ( пусть это будет
<div name = "personal-info-table" > </div>
) Поищите сами на страничке. Таким образом у нас уже имеется
"//div[@name='personal-info-table'] // div[contains(@class, 'ux-maximgb-tg-level-1')][i]"
3)Теперь можно из каждого такого div-a выбрать нужный инпут:
"//div[@name='personal-info-table'] // div[contains(@class, 'ux-maximgb-tg-level-1')][i]//input[@name='myfile']"


Надеюсь, что помогла вам



#92476 элементы с одинаковыми характеристиками

Отправлено автор: ekulgavaya 11 августа 2011 - 10:57 в Selenium - Functional Testing

Нашла у себя в заначке малюсенький туториал с подобным случаем ( когда-то писала для юных дарований), надеюсь, Женя, он будет вам полезен.Прикрепленный файл  XpathCreateExample.rar   440,81К   17 Количество загрузок:



#92470 элементы с одинаковыми характеристиками

Отправлено автор: ekulgavaya 11 августа 2011 - 10:14 в Selenium - Functional Testing

"//table[@id='sometable']/tr[" + i + "]//input[@name='myfile']"


Именно для этого я и попросила общий кусочек кода.

(желательно-обязательно уникальным) как здесь АФайл


А откуда вы знаете какое имя будет у этого элемента? Или тесты нужно затачивать под какие-то конкретные значения?

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

Только не надо злиться и обижаться=)