5

セレン Web ドライバーを使用して、テキスト ボックスにアンパサンド "&" キーを入力したいと考えています。ただし、アンパサンドを入力している間、selenium-2 はタイプボックスからフォーカスを失います。私のコマンドは、 self.type("&", :update => true) です

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

または、セレン 2 を使用してテキスト ボックスにアンパサンド「&」を入力する他の方法はありますか?

あなたの提案を教えてください。

ありがとう、スリ

4

5 に答える 5

2

私はこれに何日も費やしましたが、最終的に @Asaph は「一時的にすべての JavaScript を削除し、それが原因でアンパサンドが空白になるかどうかを確認してください」と言いました。彼は正しかった。今$searchBox->send_keys("bath & body");は正常に動作します。

最終的に、干渉していた Jquery-ui Autocomplete の一部に絞り込みました。このプロパティ: source:function( request, response ) { //implementation removed } 他のすべての JavaScript は所定の位置にとどまり、正常に動作します。Jquery-ui > Autocomplete > Source が WebDriver と競合した理由を理解し、回避策があるかどうかを確認したいと思います。

于 2012-08-14T17:12:33.070 に答える
0

ここで述べたように、" &" はアンパサンドの HTML エンティティです。やってみて。

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

于 2012-04-26T19:18:15.047 に答える
0

私の要件は、テキスト フィールドに「R&d」と入力し、以下のコードを試してみたところ、うまくいきました。

textBox.sendKeys("R/&d")
textBox.sendKeys(Keys.LEFT);
textBox.sendKeys(Keys.LEFT);
textBox.sendKeys(Keys.BACK_SPACE);
于 2015-02-26T12:10:52.760 に答える
0

ねえ、最初にそれを解決して、Adroid Driver から Appium ドライバーにしました

次に、appiumキーボードを設定した電話でGoogleキーボードを手動でオンにしました。後でキーボードを非表示にしただけでうまくいきました。

とにかくそこにいてくれてありがとう。

于 2017-11-10T05:38:46.710 に答える
0

私は同じ問題に遭遇し、Selenium SendKeys メソッドを使用する代わりに JavaScript を実行することで解決しました。

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

JsonConvert.SerializeObject() は JSON.NET からのもので、JavaScript で使用される文字列値をエンコードする便利な方法です。ただし、JavaScript で正しくフォーマットされている任意の方法で文字列値をエンコードできます。

于 2014-06-05T15:25:24.733 に答える