Selenium typeKeys снимает точку с набираемой строки - PullRequest
4 голосов
/ 29 апреля 2009

Следующая инструкция

Selenium.typeKeys("location", "gmail.com");

печатает строку gmailcom вместо gmail.com.

Что там происходит?

Из комментариев:
Я пытаюсь симулировать автозаполнение, и единственный способ сделать это в настоящее время на селене - это объединить type и typeKeys например:

selenium.type("assigned_to", split[0]+"@");
selenium.typeKeys("assigned_to", "gmail.com");

Теперь мой вопрос: почему typeKeys не вводит «точку» между gmail.com?

Ответы [ 8 ]

4 голосов
/ 30 апреля 2009

Вы пытались использовать функции встроенных клавиш и javascript char code ? Я не мог заставить работать символ «точка», используя их (символ 190), но я получил десятичную дробь (символ 110), чтобы работать нормально, и текстовое поле не должно иметь проблем ни с одним из них.

selenium.Focus("assigned_to");
selenium.Type("assigned_to", split[0]+"@");
selenium.TypeKeys("assigned_to", "gmail");
selenium.KeyPressNative("110");
selenium.TypeKeys("assigned_to", "com");
2 голосов
/ 29 апреля 2009

Используйте метод type.

Из Javadoc для клавиш :

эта команда может иметь или не иметь видимый эффект даже в тех случаях, когда Клавиши ввода обычно имеют видимый эффект

...

В некоторых случаях вы можете нужно использовать простую команду "тип" установить значение поля, а затем команда "typeKeys", чтобы отправить события нажатия клавиш, соответствующие тому, что Вы только что напечатали.

1 голос
/ 21 ноября 2011

Также попробуйте установить фокус на элемент, прежде чем писать на нем.

selenium.focus(locator);
selenium.typeKeys(locator, value);

в моем случае это работало, обрабатывая тип ввода = пароль.

1 голос
/ 01 июля 2011

Предположим, что строка, которая должна быть набрана с помощью typeKeys, равна "abc.xyz.efg". Затем мы можем использовать type и typeKeys команды для записи данной строки.

type(locator,"abc.xyz.")
typeKeys(locator,"efg")

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

1 голос
/ 30 июня 2011

У нас были похожие проблемы с использованием клавиш ввода в Селен Python.

Один из обходных путей, который мы решили для решения этой проблемы, заключается в использовании комбинации «type» и «type_keys». Как вы, возможно, знаете, у типа нет таких проблем.

Мы сделали это в нашем сценарии на python, и он отлично работает.

Например: Если в текстовом поле необходимо ввести адрес электронной почты: test.me@test.me.uk

Тогда сделай

type(locator,’test.me@test.me.’)
type_keys(locator,’uk’)

Может быть, очень грубый способ сделать, но он сделал свою работу.

Надеюсь, это поможет кому-то еще с подобной проблемой.

0 голосов
/ 05 марта 2010

Я получил то же поведение, но исправил его, передав переменную в команду Type вместо строки.

string email = @"name@gmail.com";
selenium.Type(inputfield, email);

Работает как шарм!

0 голосов
/ 23 сентября 2009

Это открытая ошибка в Selenium (ошибка SEL-519 ).

После некоторого возни с этим мне наконец удалось войти в '.' в текстовое поле с помощью JavaScript. Выполнить что-то вроде window.document.getElementById('assigned_to').value += '.' через storeEval или тому подобное.

0 голосов
/ 02 июля 2009

Я также наблюдаю это поведение при использовании Selenium RC (C #) и с другими символами (например, 'y', который, кажется, также удаляет символ, следует за ним из действия при наборе текста).

В некоторых ситуациях можно полностью обойти проблему, набрав клавиши с помощью функций TypeKeys или KeyPress, но мне не удалось найти решение, которое работает, когда вы хотите ввести текст в поле, введите управляющие символы (например, [Enter] или символ новой строки), а затем введите больше текста .. (с помощью функции «Тип» в этом случае просто перезаписывается содержимое поля ...).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...