selenium webdriver sendkeys()使用python和firefox

时间:2013-01-28 14:47:05

标签: python firefox selenium selenium-webdriver

我正在使用selenium 2.25.0firefox 3python 2.6.6。我正在尝试运行使用sendkeys()

的selenium函数
 Webdriver.find_element_by_name( 'j_username' ).clear()
 webdriver.find_element_by_name( 'j_username' ).send_keys( "username" )

此代码可以在我的机器上运行。但是,从另一台计算机运行时,用户名字段将保留为空,并继续执行脚本的其余部分(不报告任何错误)。

我可以看到在尝试发送用户名之前已清除该字段,因此我知道找到按钮的按钮/命名没有问题。我已经尝试在清除字段和发送用户名之间暂停,但这似乎也不起作用。

我需要保持我的firefox和selenium版本相同,还有什么我可以看看来解决这个问题吗?

3 个答案:

答案 0 :(得分:5)

你的代码看起来很奇怪。通常,您找到一个元素,然后使用它执行操作...而不是每次都找到它。

尝试这样的事情:

from selenium import webdriver

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

答案 1 :(得分:2)

使用以下作为解决方法,我认为它可能有用。

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 :(得分:2)

我的问题是相同的,我从selenium == 2.42.1下来到selenium == 2.25.0来解决它

更改我的selenium版本后,测试能够发送send_keys()并使用send_keys(Key.ENTER)提交表单

我目前在使用Iceweasel 3.5.16的远程Debian Squeeze 6.0.8服务器上运行无窗口

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