2012-04-23 10 views
5

アンダースコア "&"キーをselenium web-driverのテキストボックスに入力します。しかし、セレン2は、アンパサンドを入力する際に​​タイプボックスからフォーカスを失います。私のコマンドは、self.type( "&"、:update => true)Selenium-2にアンパサンド "&"を入力することができません

私はセレンでは、キーがUTF_8形式で送られていることを知っています。アンパサンドと同等のものを送信しようとしましたが、動作は同じです(予想通り)。私はXMLやHTMLがいくつかの特殊なエスケープ文字でアンパサンドをサポートしていることを知っています。私は、send_keysまたはtype_keysコマンドで(HTML code) "&"または "&"のようなエスケープシーケンスをアンパサンドに置き換える方法があるかどうかを知りたいですか?

または、セレクタ「&」をセレン2のテキストボックスに入力する方法はありますか。

あなたの提案をお知らせください。

おかげで、 スリ

答えて

0

としてはhereは、 "&は" アンパサンドのHTMLエンティティであると述べました。やってみて。

しかし、問題なくWebDriverとJavaを使ってアンパサンドを配置することができました。それがローカルな問題ではないかどうかを確認するために他の入力を試してみてください。

+0

私は@ user1352389と同じ問題を抱えています。私はあまりにも「&」が助けになると思っていました。私は努力しています: '$ searchBox-> send_keys(" bath & body "); $ searchBox-> send_keys(WebDriver :: ReturnKey()); ' – Ryan

2

これは数日間にわたって数時間を費やしており、最終的に@Asaphは "一時的にすべてのjavascriptを削除し、アンパサンドが空白になります。彼は正しい。今すぐ$searchBox->send_keys("bath & body");がうまくいきます。

私は最終的に、干渉していたJquery-uiオートコンプリートの一部に絞り込んだ。このプロパティ: source:function(request, response) { //implementation removed } 他のすべてのJavaScriptはそのまま残り、正常に動作する可能性があります。 Jquery-ui> Autocomplete> SourceがWebDriverと競合する理由を理解し、回避策があるかどうかを確認します。

0

同じ問題が発生し、Selenium SendKeysメソッドを使用する代わりにJavaScriptを実行して解決しました。

IJavaScriptExecutor jsExec =(IJavaScriptExecutor)webDriver;
jsExec.ExecuteScript( "document.getElementById( 'your-input-id-here'))値 =" + JsonConvert.SerializeObject(yourValueHere));

JsonConvert.SerializeObject()はJavaScriptで使用する文字列値をエンコードするのに便利なJSON.NETのものです。しかし、JavaScriptで正しく書式設定された方法で文字列値をエンコードすることができます。

0

私の要件は、テキストフィールドに「R & d」と入力し、以下のコードを試してみると効果がありました。

ねえ、私は最初AdroidドライバーからAppiumドライバ

次それを作る、それを解決し

textBox.sendKeys("R/&d") 
textBox.sendKeys(Keys.LEFT); 
textBox.sendKeys(Keys.LEFT); 
textBox.sendKeys(Keys.BACK_SPACE); 
0

私はその後、私はちょうどキーボードを隠し、それは私のために働いたappiumキーボード を設定した手動での電話でGoogleキーボードに切り替えます。

とにかくありがとうございました。

関連する問題