Селен веб-драйвера sendkeys() с использованием Python и Firefox

Я использую selenium 2.25.0, firefox 3 а также python 2.6.6, Я пытаюсь запустить функцию селена, которая использует sendkeys():

 Webdriver.find_element_by_name( 'j_username' ).clear()
 webdriver.find_element_by_name( 'j_username' ).send_keys( "username" )

Этот код работает с моей машины. Однако при запуске с другого компьютера поле имени пользователя остается пустым и продолжается с остальной частью сценария (без сообщения об ошибках).

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

Мне нужно, чтобы мои версии Firefox и Selena были одинаковыми, есть ли что-то еще, на что я могу посмотреть, чтобы решить эту проблему?

3 ответа

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

попробуйте что-то вроде этого:

from selenium import webdriver

driver = webdriver.Firefox()
elem = driver.find_element_by_name('j_username')
elem.clear()
elem.send_keys('username')

Используйте следующее как обходной путь, я думаю, что это может работать.

driver = webdriver.Firefox()
elem = driver.find_element_by_name('j_username')
elem.clear()
app = Application.Application()
app.window_(title_re='*.Firefox.*').TypeKeys('username')

Последние две строки в Python(pyWinauto)

Моя проблема была идентична, и я решил ее, перейдя от селена ==2.42.1 к селену ==2.25.0

После изменения версии Selen тест смог выполнить send_keys() и отправить форму с помощью send_keys(Key.ENTER).

В настоящее время я работаю без окон на удаленном сервере Debian Squeeze 6.0.8 с Iceweasel 3.5.16

Mozilla Iceweasel 3.5.16, Copyright (c) 1998 - 2010 mozilla.org

Distributor ID: Debian
Description:    Debian GNU/Linux 6.0.8 (squeeze)
Release:        6.0.8
Codename:       squeeze
Другие вопросы по тегам