seleniumで、ウィンドウスクロール処理入れたんだけど、なにかうまくいかないんだよね
seleniumから、javascriptで操作するとうまくいくこともあるよ
Seleniumを使用してブラウザを操作する際、Seleniumだけではどうもうまくいかず、JavaScriptで制御を行うとうまくいくことがありましたので、Selenium内でのjavascriptの使用について、メモします。
目次
SeleniumのJavaScript実行メソッド
driver.ExecuteScript("実行したいJavaScript");
普段は、あらかじめ実行したいスクリプトを文字列として宣言して使います。
JavaScriptでウィンドウをスクロール
var script = "window.scrollTo(0,100)"; driver.ExecuteScript(script);
1行目が、あらかじめ実行したいスクリプトの文字列です。スクロールをさせたいのです。
※driverはあらかじめ宣言してあります。
JavaScriptでクリックしたい要素までスクロールしてクリック
string scripts = "var element = document.getElementById('test'); element.scrollIntoView(); element.click();"; driver.ExecuteScript(script);
※document.getElementByIdのidは適当な内容です。任意のidとすることで要素を取得できます。
要素が画面内にないときなどは上記方法をとるといい感じにできました。
JavaScriptにつきましては、以下の本を参考にしています。
————————————————-
・Amazon
徹底マスター JavaScriptの教科書プログラミングの教養から、言語仕様、開発技法までが正しく身につく【電子書籍】[ 磯 博 ]
————————————————-
・楽天
徹底マスター JavaScriptの教科書プログラミングの教養から、言語仕様、開発技法までが正しく身につく【電子書籍】[ 磯 博 ]