Селен веб-драйвера 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