2016-05-10 13 views
0

私はAndroidモバイルデバイスでテストを自動化するためにPythonをAppiumと共に使用しています。私はAppium/Selenium webdriverを使用していて、デバイスでChromeを起動しています。私はユーザー名フィールドでターゲットとしているダイアログがあり、XPathでユーザー名テキストボックスを見つけて、それをクリックして入力を開始することができます。しかし、sendKeys()コマンドを使ってテキストを入力すると、何もしません。どんな助けでも大歓迎です。Appium sendKeys()コマンドでHTML5ダイアログボックスにテキストを渡すことができません

コード(パイソン):

try: 
     self.prac_btn = self.get_ele('xpath', '//*[@id="dialogMessage"]/fieldset/input[1]') 
     print "Found username" 
    except: 
     print "Cannot find username" 

    try: 
     time.sleep(5) 
     self.click_ele(self.prac_btn) 
    except: 
     print "Cannot click on username" 

    try: 
     time.sleep(5) 
     self.prac_btn.send_keys(self, "Username") 
    except: 
     print "Cannot type text" 
+1

'send_keys()'の最初の引数として 'self'が必要ですか?あまりにも多くの引数を渡しているので、 'send_keys()'を呼び出す例外が出ていると思われます。 –

+0

こんにちはJohn、あなたは一歩踏み込んだ。私は、Pythonは常に最初のパラメータとして 'self'を必要とし、メソッド構造はsend_keys(self、* value)と同じであるという印象を受けました。それは100%今働いているように見える方向をありがとう。 – Dyz

+0

@ジョンゴードン:あなたはそれから答えを詳述できますか? – nullpointer

答えて

0

エラーが一つだけの引数を受け入れる、send_keys()への2つの引数を渡すことによって引き起こされます。 send_keys()はクラスインスタンス関数なので、selfは引数として必要ありません。 selfが暗黙的に渡されます。

これは、裸のexceptが危険な理由の良い例です。

TypeError: send_keys() takes exactly 1 argument (2 given) 

何が悪かったのかのような強力な手がかりだったでしょう:あなたは、例外をキャッチし、それを印刷していた場合、あなたはこのような何かを見ているだろう。

関連する問題