RSelenium
パッケージを使用して、Web サイトにログオンし、その上で何らかのプロセスを実行するプロセスを自動化しようとしています。ログインできて、あちこちのボタンをクリックできましたがjQuery
、ページで機能を実行するのに行き詰まりました。関数を使用してデータを入力するドロップダウン ボックスがありjQuery
ます。この関数を実行する方法がわかりません。ページのソース (jQuery
関数を含む) は次のとおりです。
<input disabled="disabled" id="stuff" name="stuff" style="width:100%" type="text" /><script>
jQuery(function(){jQuery("#stuff").kendoDropDownList({"change":disableNext,"dataSource":{"transport":{"read":{"url":"/StuffInfo/GetStuff","data":filterStuff},"prefix":""},"serverFiltering":true,"filter":[],"schema":{"errors":"Errors"}},"autoBind":false,"optionLabel":"Select court...","cascadeFrom":"state"});});
</script>
<script>
ドロップダウンの名前は でstuff
、次のコードを使用してアクセスしています。
library("RSelenium")
startServer()
mybrowser <- remoteDriver()
mybrowser$open()
mybrowser$navigate("<URL>")
wxChooseStuff <- mybrowser$findElement(using='id',"stuff")
次のコマンドを実行しようとすると:
wxChooseStuff$clickElement()
次のエラーが表示されます。
Error: Summary: ElementNotVisible
Detail: An element command could not be completed because the element is not visible on the page.
class: org.openqa.selenium.ElementNotVisibleException
クリックするとドロップダウンにデータが自動入力されることを期待していました。
を使用してjQuery関数を実行する方法についてのポインタはRSelenium
大歓迎です。
jQuery
別のパッケージを使用して関数を実行できても、それで問題ありません。この関数を実行して要素をクリックするだけです。
PS - 私は Web 開発者ではないので、ばかげた質問をしている場合はご容赦ください。
編集:
提案に従って次のコードを試しました:
このコマンドでは、すべての二重引用符 ( ) を単一引用符 ( )にscript
置き換えて、タグで囲まれた完全なテキストを含めます。"
'
mybrowser$executeScript(script = "jQuery(function(){jQuery('#stuff').kendoDropDownList({'change':disableNext,'dataSource':{'transport':{'read':{'url':'/StuffInfo/GetStuff','data':filterStuff},'prefix':''},'serverFiltering':true,'filter':[],'schema':{'errors':'Errors'}},'autoBind':false,'optionLabel':'Select court...','cascadeFrom':'state'});});")
wxChooseStuff <- mybrowser$findElement(using='id',"stuff")
mybrowser$executeScript(script = "arguments[0].hidden = false;",
args = list(wxChooseStuff))
wxChooseStuff$clickElement()
しかし、私は次のエラーを受け取りました:
Error: Summary: ElementNotVisible
Detail: An element command could not be completed because the element is not visible on the page.
class: org.openqa.selenium.ElementNotVisibleException
要素がまだ見つからないようです。