以前、Selenium と Chrome (ChromeDriver)を使用してWebサイトへのアクセスを確認しました。
Selenium
を使うと手数が増えてしまうようなので、各プログラム言語ごとにSelenium
のラッパーが存在しています。
Java用のライブラリをとして存在している Selenium
のラッパーの一つが Selenide
です。
Selenideの読み方は、セレニド or セレナイド のようです。
Selenide
を使った方がコード量は圧倒的に減りそうです。
とりあえず、Selenide
を使ってWebページへアクセスするところまで試しました。
Javaライブラリの準備
pom.xml に以下のように selenide の依存関係を追加します
<dependency> <groupId>com.codeborne</groupId> <artifactId>selenide</artifactId> <version>6.3.4</version> </dependency>
本サンプルでは バージョン 6.3.4 を指定しています。
ソースコード例
ヘッドレスモードにはしていません。
以下はChrome で Googleのページを開いて検索を実行しているというサンプルです。
import com.codeborne.selenide.Configuration; import org.openqa.selenium.chrome.ChromeOptions; import static com.codeborne.selenide.Selectors.*; import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.Selenide.*; import static com.codeborne.selenide.WebDriverRunner.getWebDriver; public class TrialSelenide1 { public static void main(String[] args) { Configuration.baseUrl = "https://www.google.com"; Configuration.browser = "chrome"; Configuration.screenshots = false; Configuration.holdBrowserOpen = true; // ここでは処理後にあえてブラウザを閉じないように設定しています。 // "Chromeは自動テストソフトウェアによって制御されています" の表示を消す (消さなくても害はないです) ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("useAutomationExtension", false); options.setExperimentalOption("excludeSwitches", new String[] { "enable-automation" }); Configuration.browserCapabilities.setCapability(ChromeOptions.CAPABILITY, options); // Googleを開く open(""); // ウィンドウの最大化(やる必要は特にないです) getWebDriver().manage().window().maximize(); // Googleで検索を実行 $(byName("q")).val("覚えたら書く blog.y-yuki.net").pressEnter(); } }
ここには、画面キャプチャ等の実行結果は貼り付けていませんが、
上記コードで無事にGoogleのページが開いて検索が実行され検索結果のページが表示されることを確認しました。
まとめ
非常に簡単な例ですが、Selenide
で対象のWebページを開いて操作ができました。