Selenium Automated Testing и Java текстовые поля - PullRequest
1 голос
/ 15 июля 2009

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

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

Но есть часть сайта, которая представляет собой текстовое поле javascript, и мне нужно ввести в него текст.

Однако Selenium не распознает какие-либо действия, которые я выполняю внутри секции редактирования текста. Он распознает, если я нажму что-то вроде BOLD или ITALICS. Когда я выбираю BOLD, он возвращается: нажмите | // a [@ id = 'mce_editor_1_bold'] / img |

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

Кто-нибудь может предложить помощь или идеи?

Ответы [ 2 ]

0 голосов
/ 14 августа 2009

Я бы порекомендовал упорствовать с Firebug. Откройте страницу, которую вы тестируете, и воспользуйтесь функцией «Проверка» Firebug, чтобы найти текстовое поле в источнике HTML. Тогда вы сможете найти способ найти поле, используя id, xpath или css.

Например: Если он имеет id = 'textBox', вы можете найти его, используя id = textbox. Если он имеет class = 'jsTextBox', вы можете найти его, используя css = .jsTextBox

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

Как только вы узнаете местоположение, вы сможете вводить данные, используя команды type или typeKeys. type изменяет значение, а typeKeys запускает клавишу вверх / вниз для каждого символа - это медленнее, но иногда требуется в зависимости от тестируемого приложения.

type | id=textBox | myValue

verifyValue | id=textBox | myValue

Надеюсь, это поможет, Дэйв.

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

Вы также можете использовать JavaScript для работы с Selenium. Так, например, если в вашем расширенном текстовом поле есть id="RichText", вы можете получить элемент с помощью javascript и ввести свое значение там.

Код выглядит примерно так:

| verifyEval | javascript{this.browserbot.getCurrentWindow().document.getElementById('RichText').value = 'Foo Bar'} ||

Однако я обнаружил, что синтаксис может варьироваться для части this.browserbot. Это займет немного работы, чтобы все пошло. Вы также можете проверить эту статью в Automated Tester , который содержит информацию о том, что вы пытаетесь сделать.

Также этот вопрос должен помочь вам в дальнейшем: Selenium: Как мне использовать javascript для очистки значения из поля формы?

...