Селен не регистрирует нажатие кнопки - PullRequest
2 голосов
/ 25 августа 2009

У меня проблема с запуском Selenium IDE на одной из моих страниц AJAX. Есть кнопка HTML с отправкой javascript onclick, которая заставляет новый элемент формы появляться после нажатия кнопки. Кнопка также отображается через AJAX только после того, как выбранное значение было выбрано в ранее отображаемом раскрывающемся списке.

Селен видит, что кнопка появляется, и думает, что щелкает по ней, но на самом деле щелчок не работает.

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

Приветствия

РЕДАКТИРОВАТЬ: просто чтобы уточнить, я использую команду waitForVisible для кнопки, которая проходит, и затем щелчок, который также проходит, но затем он застревает на следующем элементе, который делает выбор из выпадающего коробка. Селен думает, что он делает это, но это не так: (

Ответы [ 3 ]

1 голос
/ 25 августа 2009

Иногда, в зависимости от того, как все происходит на странице, щелчок селена не работает. Это может быть связано с тем, что реальный onClick позже назначается с помощью javascript где-то еще (даже если html сообщает, что у него есть действие «onClick».

Попробуйте заменить действие click на mouseDown и mouseUp один за другим, используя ваш локатор в качестве параметра:

<tr>
    <td>mouseDown</td>
    <td>button_id</td>
    <td></td>
</tr>
<tr>
    <td>mouseUp</td>
    <td>button_id</td>
    <td></td>
</tr>

удачи!

1 голос
/ 25 ноября 2010

Я пробовал много способов сделать это в IE8 64bit и Windows 7. Я обнаружил, что отлично работает метод MouseDownAt и MouseUpAt. Например, я использовал следующий код:

 mouseDownAt(locator, "10,10");
 mouseUpAt(locator, "10,10");
0 голосов
/ 25 августа 2009

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

Наиболее вероятный ответ - это проблема времени. Selenium имеет тенденцию запускать шаги быстрее, чем DOM может отображать изменения, и это вызывает ошибки. Возможно, вы захотите указать двухсекундную паузу непосредственно между генерацией кнопки и нажатием кнопки.

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

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