2015-09-03 21 views
20

RSeleniumパッケージを使用して、Webサイトにログオンして何らかのプロセスを実行するプロセスを自動化しようとしています。私はここでボタンをクリックしてログインすることができましたが、私はこのページでjQueryの機能を実行していません。 jQuery機能を使用してデータを入力するドロップダウンボックスがあります。私はどのようにこの機能を実行するか分からない。次のようにページのソースには、(jQuery機能を含む)である:RSeleniumパッケージを使用して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() 

次のコマンドを実行します

私はクリックがドロップダウンのデータを自動入力することを望んでいました。

RSeleniumを使用してjQuery関数を実行する方法についてのあらゆる指摘が非常に高く評価されます。

別のパッケージを使用してjQuery関数を実行することができても、それは問題ありません。私はこの機能を実行して要素をクリックしたいと思います。

PS - 私はウェブ開発者ではないので、私は愚かな質問をしている場合は私を許してください。

EDIT:

私が提案どおりに次のコードを試してみました:このコマンドで

を、私はすべて二重引用符(")に代わる、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 

要素がまだ見つからないように見えます。

+0

は、それはあなたがそうそれはに少し簡単です興味を持っているウェブサイトを提供することが可能です再現しますか? – Dason

+0

私は実際に内部のテストウェブサイト上でそれをやっているので、リンクを公開することはできません、ごめんなさい:( – Patthebug

+0

これは野生のガチョウの追跡かもしれませんが、同じ2つのIDがある可能性はありますか?私は同じIDを持っている別の要素をクリックするようにしようとしていた間、それはdivの下にあって "見えない" IDの上で行動しようとしていた前に、セレンと頭痛を引き起こした。 – Joy

答えて

0

私はあなたが使用しているものドライバは考えているが、PHPのためのクロムドライバを使用すると、次の操作を行います。

$javascript = array('script' => 'myfunction();', 'args' => array()); 
$var = $this->execute($javascript); 
関連する問題