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

ganzalik228

Регистрация: 11 янв 2012
Offline Активность: 06 июл 2012 14:46
-----

Мои сообщения

В теме: innerHTML в Selenium

05 июля 2012 - 12:56


Суть такова, на странице регистрации, в поле, нужно ввести сумму двух чисел которые каждый раз меняются при генерации страницы. Эти числа записаны в элементе div. Задача подтянуть содержание элемента div как сроку и дальше уже проводить с ней вичисления. Или ваш вариант.

<div class="x-chanage-code" style="background-color:#000000;color:#ffffff;font-style:italic;-moz-user-select:none;cursor:default;padding:3px 0 0 12px;height:17px;width:80px;border: solid 1px #bdbfb5;font-weight:bold;" onselectstart="return false">9 * 9 = ?</div>

В даном примере нужно ввести 81, так как 9 * 9 = 81 :)


Сначала вам надо вытянуть текст "9*9=?"
Делается это очень просто
String captha = driver.findElement(By.xpath("//div[@class='x-chanage-code']")).getText();
После этого работайте как с обычной строкой ))


Чёрт, я совсем под солнцем запарился) Я думал это совсем не текст) извините) мозг уже не работает( это всё делается элементарно в таком случае. ещё раз извините за вынос мозга со скриптами и прочее)
В selenium IDE,если надо, то: storeEval | selenium.getText("//путь к div") | asd или storeText | путь | asd

В теме: innerHTML в Selenium

05 июля 2012 - 12:29

если хотите, можете скинуть ссылку на рег. форму, может смогу помочь

В теме: innerHTML в Selenium

05 июля 2012 - 12:20

Вообще, если есть возможность, можете остановить картинку, т.е. генерацию чисел, или временно сделать их постоянными (когда-то сталкивался с таким, делал именно так). Другой способ, можно вытянуть эти 2 числа java скриптом, в этом же скрипте сложить их, и записать результат в переменную, потому эту переменную ввести в verification. Откровенно говоря как вытянуть по отдельности 2 числа, я не знаю, Вам лучше обратиться на javascript.ru форум, т.к. в <div> куча всего. тут уж извините) Ещё, как вариант, если есть доступ к коду, вписать в код простой скриптик, в стиле "если verification = 999 и если verification = сумма 2 сгенерированных чисел совпадает то считать результат верным". Получится что и вы всегда своим "ботом" можете зарегиться, и пользователи не смогут обойти эту проверку, если не угадают загаданное Вами число) С моей стороны этот вариант будет попроще. Сам я конкретно с таким не сталкивался, только с похожими проблемами, но должно работать. Т.е. потом Вы просто вводите 999 и результат будет верен. Но это если у вас есть доступ к коду и страницы и Вы можете его изменять. Если есть, то вообще просто уберите "событие проверки совпадения чисел" при нажатии кнопки до окончания Вашего теста. Но вот если нет доступа, то ничего пока подсказать не могу, не вижу кода всей стрницы, каким образом он проверят, как он проверяет по нажатию кнопки я не знаю. Единственный вариант в таком случае, это вытянуть по отдельности эти 2 числа, но как вытянуть отдельно не знаю. Если есть вопросы обращайтесь) а то мне скучно на работе)

В теме: innerHTML в Selenium

05 июля 2012 - 11:01

не очень понимаю что именно нужно. У Вас есть input (куда вводится сумма 2 чисел со стороны пользователя), есть кнопка submit, при нажатии которой, должна быть "проверка не лету" правильно ли введена сумма 2 чисел в input, откуда ПОЛЬЗОВАТЕЛЬ (без доступа к коду, !!Не програмер, у которого есть код страницы) берёт эти числа? И что должны получить в результате теста? Просто проверка правильной суммы при каждом обновлении страницы? я так понял?

В теме: Поиск элементов по области

05 июля 2012 - 10:45

можно простым скриптиком добавить в элемент нужный атрибут\сменить type и т.д.. А вообще для тестирования не очень понимаю зачем тебе это. Если элемент присутствует в коде. Если элемент скрыт, но в коде он есть, просто через xpath клацаешь по нему. У меня работает)