私はいくつかのIT管理タスクを自動化するためにセレンを使用していますが、NAS(内部Webページからアクセスする)にはスワップアウトされた外部ドライブが必要です。私は、WebインターフェースがAJAXを使って画面を動的に変更すると思うし、一般的にセレンを使ってウェブページをナビゲートする能力が失われていると思う。AJAXとランダムに生成されたターゲットidを持つセレンのclickat
NASサプライヤーはでWebインタフェースのライブデモを持っている:これはいつも同じNAS用Webインターフェイスにある http://www.synology.com/us/products/demo/index.php
。
誰でもこのタイプのページをナビゲートする方法に関するヒントはありますか? (コントロールパネルを開くなどのためにclickat()に要素ロケータを見つけるにはどうすればよいですか)。これらのIDは、ログインするたびに「target id = ext-gen525」のように無作為に生成されるようです。
うん、これは動作し、私はあなたが言っていることを次のようしています。私はfirefoxアドオンのDOMインスペクタとXPatherを使って、ボタンをクリックすることで、ボタン上のテキストのような対象を賢明にすることができます。 私が使用しているセレンIDEは、睡眠の代わりに一時停止していますが、スクリプトを実行して機能しています。誰かが私のような問題を抱えていて、答えをカットアンドペーストします。 – daniel
selenium.open( "/ webman/index.cgi"); selenium.type( "id = login_username"、 "admin"); selenium.type( "id = login_passwd"、 "synology"); selenium.click( "id = login_submit"); Thread.sleep(3000); selenium.click( "// div [text()= 'コントロールパネル']"); Thread.sleep(3000); selenium.click( "// div [text()= '外部']"); Thread.sleep(3000); selenium.click( "// div [text()= 'SATALink SPIF225A']"); Thread.sleep(3000); selenium.click( "// button [text()= 'Eject']"); Thread.sleep(3000); selenium.click( "// button [text()= 'はい']"); Thread.sleep(3000); selenium.click( "// button [text()= 'ログアウト']"); – daniel