12

我正在使用selenium 2.25.0,firefox 3python 2.6.6. 我正在尝试运行一个硒函数,它使用sendkeys()

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

这段代码可以在我的机器上运行。然而,从另一台机器上运行,用户名字段被留空并继续脚本的其余部分(不报告任何错误)。

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

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

4

3 回答 3

9

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

尝试这样的事情:

from selenium import webdriver

driver = webdriver.Firefox()
elem = driver.find_element_by_name('j_username')
elem.clear()
elem.send_keys('username')
于 2013-01-28T15:00:31.987 回答
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
于 2014-06-17T21:30:16.963 回答
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) 中

于 2013-01-29T07:23:34.380 回答