RobotFramework(RF)を使用してWebアプリをテストしています。ポップアウト内のボタンをクリックしたい。私は要素を見つけるためにxpathとjavascriptを試しました。SeleniumLibraryは、その要素がクリックされたと言っていますが、フロントエンドUI側では、イベントがアイテムの選択を表示することが期待されているため、ボタンが実際にクリックされていることを確認できません。スクリプトの結果が示すことは、UIに表示されるものと同期していません。手動クリックは正常に機能します。
これが私が試したjsとxpathのコードです...
Execute Javascript
document.querySelector("#CallOutcomes_InboundInbound_menuPlace").querySelector('.hierarchicalMenuButton').click()
Execute Javascript
document.querySelector("#CallOutcomes_InboundInbound_menuPlace").querySelectorAll('span[style="height: 0px;"]')[0].querySelector("#startMenuButton").click()
Execute Javascript
document.querySelector("#CallOutcomes_InboundInbound_menuPlace").querySelectorAll('span[style="height: 0px;"]')[0].querySelector('.hierarchicalMenuButton').click()
Click Element //*[@id="CallOutcomes_InboundInbound_menuPlace"]//*[contains(@class,"hierarchicalMenuButton")]
これがhtmlスニペットです...
<pre class="showQueryMenuTable" id="CallOutcomes_InboundInbound_menuPlace">
<span style="height: 0px;">
<input type="button" class="hierarchicalMenuButton" value="Call Outcomes" id="startMenuButton">
コンソールでjavascriptコードを試してみると、ロケーターは要素を見つけることができますが、.click()が追加されると、配列になります。ボタンはクリックされません。
ここで何か特別なことをする必要がありますか?他のボタン/要素で正常に動作します。何が足りないのですか?
----- 2020年1月10日編集----
ボタンのイベントがクリックではなくマウスダウンであることを発見しました。驚いたことに、RFのMouseDownキーワードは機能しません。そのため、代わりにJavascriptを使用したと思いました。
Execute javascript document.querySelector("#CallOutcomes_InboundInbound_menuPlace .hierarchicalMenuButton").dispatchEvent(new MouseEvent('mousedown',{}));
そのコマンドはそれを修正しました。これが私のスクリプトにどのような長期的な影響を与えるかはわかりませんが、暫定的には機能します。乾杯!
ボタンのイベントがクリックではなくマウスダウンであることを発見しました。驚いたことに、RFのMouseDownキーワードは機能しません。そのため、代わりにJavascriptを使用したと思いました。
Execute javascript document.querySelector("#CallOutcomes_InboundInbound_menuPlace .hierarchicalMenuButton").dispatchEvent(new MouseEvent('mousedown',{}));
そのコマンドはそれを修正しました。これが私のスクリプトにどのような長期的な影響を与えるかはわかりませんが、暫定的には機能します。乾杯!
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加