我正在使用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和selenium版本相同,还有什么我可以看看来解决这个问题吗?
答案 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