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

Фотография

innerHTML в Selenium


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

#1 mimer

mimer

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

  • Members
  • Pip
  • 20 сообщений

Отправлено 05 июля 2012 - 09:04

Суть такова, на странице регистрации, в поле, нужно ввести сумму двух чисел которые каждый раз меняются при генерации страницы. Эти числа записаны в элементе 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 :)
  • 0

#2 ganzalik228

ganzalik228

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Артур

Отправлено 05 июля 2012 - 11:01

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

#3 mimer

mimer

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

  • Members
  • Pip
  • 20 сообщений

Отправлено 05 июля 2012 - 11:49

Я присоединил файл где показано как проходит регистрация нового пользователя. Я хочу написать тест который автоматически будет регистрировать нового пользователя, но незнаю как обойти "проверку на бота" (проверку правильности суммы двух чисел)

Прикрепленные файлы

  • Прикрепленный файл  pic.jpg   252,43К   20 Количество загрузок:

  • 0

#4 ganzalik228

ganzalik228

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Артур

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

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

#5 ganzalik228

ganzalik228

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Артур

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

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

#6 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


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

Суть такова, на странице регистрации, в поле, нужно ввести сумму двух чисел которые каждый раз меняются при генерации страницы. Эти числа записаны в элементе 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();
После этого работайте как с обычной строкой ))
  • 1

#7 ganzalik228

ganzalik228

    Активный участник

  • Members
  • PipPip
  • 79 сообщений
  • ФИО:Артур

Отправлено 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
  • 0

#8 mimer

mimer

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

  • Members
  • Pip
  • 20 сообщений

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


Суть такова, на странице регистрации, в поле, нужно ввести сумму двух чисел которые каждый раз меняются при генерации страницы. Эти числа записаны в элементе 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();
После этого работайте как с обычной строкой ))


Большое спасибо, именно то что я хотел
  • 0

#9 mimer

mimer

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

  • Members
  • Pip
  • 20 сообщений

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

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


ничего бывает)
  • 0


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

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