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

Фотография

Не рабоает sendKeys и js как способ ввода в input с помощью seleniumWe

#selenium #Javascript

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

#1 Kurochkin

Kurochkin

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Курочкин Ярослав Эдуардович

Отправлено 01 ноября 2017 - 07:33

Добрый день!

Уважаемые форумчане, подскажите:

Проект пишут на Vue.js после того как к input применили privent default значения не вводяться.

Точнее получается следующее:

SendKeys - вообще ничего не вводяться ( click() clear() ожидание - пробывал не помогает)

JavaScript - driver.executeScript("document.getElementById('senderName').value='тарас'", "привет");

Значение вводиться, но после того как тест идет дальше и попадает на на следующий input значение в предыдущей пропадает.

Использую: Selenium Webdriver 3.6.0, Chronium - v.60 language - JAVA.

 


  • 0

#2 aid

aid

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

  • Members
  • PipPipPipPip
  • 448 сообщений
  • ФИО:Николай


Отправлено 01 ноября 2017 - 07:39

Скорее всего, такие условия сделаны разработчиками, ввод типа некорректный с точки зрения их. Посмотрите в функции как работает привентДефалт. 


  • 0

#3 Kurochkin

Kurochkin

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Курочкин Ярослав Эдуардович

Отправлено 01 ноября 2017 - 07:43

Скорее всего, такие условия сделаны разработчиками, ввод типа некорректный с точки зрения их. Посмотрите в функции как работает привентДефалт. 

Да это сделали разработчики, но вопрос в том как сделать автотесты рабочими


  • 0

#4 aid

aid

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

  • Members
  • PipPipPipPip
  • 448 сообщений
  • ФИО:Николай


Отправлено 01 ноября 2017 - 08:01

 

Скорее всего, такие условия сделаны разработчиками, ввод типа некорректный с точки зрения их. Посмотрите в функции как работает привентДефалт. 

Да это сделали разработчики, но вопрос в том как сделать автотесты рабочими

 

 

Так я говорю, значит, с точки зрения логики работы программы, то, что вы вводите не валидно. Посмотрите какие условия прописаны в функции.


  • 0

#5 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 01 ноября 2017 - 08:04

тут тоже человек жалуется что веб-драйвер не работает в этом случае, пост вчерашний:

https://stackoverflo...-preventdefault


  • 0

#6 aid

aid

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

  • Members
  • PipPipPipPip
  • 448 сообщений
  • ФИО:Николай


Отправлено 01 ноября 2017 - 08:09

тут тоже человек жалуется что веб-драйвер не работает в этом случае, пост вчерашний:

https://stackoverflo...-preventdefault

 

Так человек правильно сделал, с помощью JS вводит. Вопрос только в том, что похоже то, что вводится по условию не подходит


  • 0

#7 Kurochkin

Kurochkin

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Курочкин Ярослав Эдуардович

Отправлено 01 ноября 2017 - 08:34

 

 

Скорее всего, такие условия сделаны разработчиками, ввод типа некорректный с точки зрения их. Посмотрите в функции как работает привентДефалт. 

Да это сделали разработчики, но вопрос в том как сделать автотесты рабочими

 

 

Так я говорю, значит, с точки зрения логики работы программы, то, что вы вводите не валидно. Посмотрите какие условия прописаны в функции.

 

как раз ввод в автотесте валидные данные. Руками тоже вводиться.


  • 0

#8 Kurochkin

Kurochkin

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Курочкин Ярослав Эдуардович

Отправлено 01 ноября 2017 - 08:34

тут тоже человек жалуется что веб-драйвер не работает в этом случае, пост вчерашний:

https://stackoverflo...-preventdefault

Это мой разработчик :)


  • 0

#9 aid

aid

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

  • Members
  • PipPipPipPip
  • 448 сообщений
  • ФИО:Николай


Отправлено 01 ноября 2017 - 09:31

Дебажить вдвоём, смотреть что там происходит. Без доступа к коду и приложению, уже гадание будет.


  • 0

#10 Kurochkin

Kurochkin

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Курочкин Ярослав Эдуардович

Отправлено 01 ноября 2017 - 11:36

Дебажить вдвоём, смотреть что там происходит. Без доступа к коду и приложению, уже гадание будет.

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


  • 0

#11 aid

aid

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

  • Members
  • PipPipPipPip
  • 448 сообщений
  • ФИО:Николай


Отправлено 01 ноября 2017 - 20:16

 

тут тоже человек жалуется что веб-драйвер не работает в этом случае, пост вчерашний:

https://stackoverflo...-preventdefault

Это мой разработчик :)

 

 

Нужно больше кода. Но кое-что понятно. Давайте попробуем разобраться. Действительно, вариант с JS не сработает, так как обработчик установлен на - keypress следовательно, устанавливая значение поля таким образом, не выйдет ничего.

Рассуждаем дальше. send_keys в Селениуме (если ничего не поменялось конечно), по идее эмулируют именно пользовательский ввод, в том числе с методами keydown, keyup, а вот есть ли keypress, не уверен. keypress позволяет получить именно код символа, а не скан-код. Часть функции, которая обрабатывает у вашего разработчика это  

filterInput (event) {

if(NAME_FILTER_REGEX.test(event.key))

 

Ну в общем, я думаю уже вам понятно по каким направлениям копать.


  • 1

#12 Kurochkin

Kurochkin

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Курочкин Ярослав Эдуардович

Отправлено 01 ноября 2017 - 20:35

 

 

тут тоже человек жалуется что веб-драйвер не работает в этом случае, пост вчерашний:

https://stackoverflo...-preventdefault

Это мой разработчик :)

 

 

Нужно больше кода. Но кое-что понятно. Давайте попробуем разобраться. Действительно, вариант с JS не сработает, так как обработчик установлен на - keypress следовательно, устанавливая значение поля таким образом, не выйдет ничего.

Рассуждаем дальше. send_keys в Селениуме (если ничего не поменялось конечно), по идее эмулируют именно пользовательский ввод, в том числе с методами keydown, keyup, а вот есть ли keypress, не уверен. keypress позволяет получить именно код символа, а не скан-код. Часть функции, которая обрабатывает у вашего разработчика это  

filterInput (event) {

if(NAME_FILTER_REGEX.test(event.key))

 

Ну в общем, я думаю уже вам понятно по каким направлениям копать.

 

Доброй ночи. 

Ага значит я попробую именно Keypress в Selenium ( если он есть) 

Ну и часть когда попрошу. Думаю завтра получиться его здесь разместить.

P.S. спасибо за наводку


  • 0

#13 Kurochkin

Kurochkin

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

  • Members
  • Pip
  • 17 сообщений
  • ФИО:Курочкин Ярослав Эдуардович

Отправлено 04 ноября 2017 - 17:21

Проблему решили. Коротко говоря sendkey работает с inputom char. А разработчики поставили несколько иное решение. 


  • 0


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

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