2011-11-29 9 views
2

私は自動Webフォームに記入セレンを使用してPythonでスクリプトを書いています(ヘルプデスクチケットシステム)でのPythonでエミュレートキーストロークは、Linux

は、この要因は、チケットの体は、要素を持っていないですidはSeleniumが認識するので、本文に入力するにはタイトル要素を見つけて、Tabキーを押してから本文に入力します。ここで

は、体内にメッセージを書き込みいくつかのコードです:

der = "/t this is the desc" 
driver.find_element_by_id("title").send_keys(der) 

問題は、私にとって、このコードのdoesntの仕事です。私が本当に行う必要があることは、次のようになります。

body = open(email.txt) 
driver.find_element_by_id("title").send_keys("/t" + body) 

だから私はそれがチケットの体に体変数に格納されているもの書き、その後、タイトル要素を見つけるTabキーを押します。唯一の問題は構文が悪いことです。

私はSendKeysを見ましたが、それはウィンドウのみです。私はFedora 16を使用しています。

ご協力いただきありがとうございます。

ありがとうございます!

+1

:に

body = open(email.txt) 

:これを変更します。 CSSロケータを使用して選択することはできますか? driver.find_element_by_css_selector()を使用するか、xpath driver.find_element_by_xpath()を使用して最後の手段として使用します。 – Isaac

+0

私はバインディングdoc(http://readthedocs.org/docs/selenium-python/en/latest/locating-elements.html)を見つけ、要素を見つける方法を見ました。私はFireBugを埋め込み、そのページを通って行った。私は有望に見えるclass_nameを見つけることに終わり、それは仕事を終えた。 私のコードはdriver.find_element_by_class_name( "ze_area")に終わった。send_keys( "これはボディ") –

答えて

2

コードにバグがあります。あなたは、チケットの体はセレンが認識する要素IDを持っていないことを言及

body = open("email.txt").read() 
+0

ありがとう! –

+0

あなたは大歓迎です。私の答えを受け入れることはもちろん認められるでしょう! :-) –

+0

技術的には、私の元のコードはこれを持っていましたが、本当の問題はアイザックの答えでした。 –