_Selenium 2.25.0
_、_firefox 3
_および_python 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のバージョンを同じに保つ必要があります。この問題を解決するために他に確認できることはありますか?
あなたのコードは奇妙に見えます。通常、要素を見つけて、それを使ってアクションを実行します...毎回それを見つけるのではなく。
このようなことを試してください:
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')
最後の2行はPython(pyWinauto)にあります
私の問題は同じで、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