サーチ…


前書き

これはJavaを使用したSeleniumの紹介です。 Seleniumに関して何か知っているとは思っていませんが、このコースに従うにはJava知識が必要です。

ダウンロードリンク:

セレン

インテリジェントIDEA

ChromeDriver

JDK 8

IntelliJ Idea for Seleniumをセットアップする

前提条件:

  1. Javaがインストールされている
  2. セレンはフォルダ内に抽出されます(2つのファイルと1つのフォルダを含みます)

IntelliJ Idea for Seleniumをセットアップするには、以下の手順に従ってください。

  1. 「新規プロジェクト」をクリックします。
  2. Java <"Hello World"アプリケーションを選択
  3. プロジェクトの名前を入力して作成します。

あなたの画面は次のようになりますここに画像の説明を入力

さあ、行きましょう

File < Project Structure < Modules < Dependencies

ここで、緑のプラス( + )アイコンをクリックし、ライブラリを選択します。次に、抽出されたSeleniumフォルダに移動し、 " selenium-java 2.4.0.jar "を追加します。これを追加したら、もう一度緑色のプラス( + )アイコンをクリックし、 "ディレクトリ"を選択します今回は、Seleniumのlibsフォルダを探して、OKをクリックして選択します。

最後に、プロジェクト構造は次のようになりますここに画像の説明を入力

OKをクリックすると、すべて設定されます。

ChromeDriverの設定

前提条件:ChromeDriverがダウンロードされている

クラスに次のコードをコピーします。

public static void main(String[] args) {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
}

linuxを使用している場合は、ChromeDriver Binaryのパスを指定します。

セレンを使ってウェブサイトを開く

getメソッドを使用してウェブサイトに移動します。たとえば、これはgoogleを開く

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:www.google.com");
    Thread.sleep(3000); //wait for 3 seconds
    driver.quit();      //close Chrome
}

driver.quit()はブラウザを閉じます。遅延を作成するために、 Thread.sleep(3000)を使用します。

セレンの要素を取得する

SeleniumのすべてのHtml要素はWebElementと呼ばれます。たとえば、 pタグはWebElementaタグはWebElementなどとなります。次のhtml構造を考えてみましょう。

<a id="link1" href="https://www.google.com">google</a>
<p class="p1">
This is a paragraph
</p>

我々が取得したい場合は今、タグを、私たちは何ができますa

WebElement link = driver.findElement(By.id("link1"));

これをクリックすると

link.click();

別の例を考えてみましょう。我々はのテキストたかった場合pタグを、 すなわち 、「 これは段落です 」、我々は行うことができます

WebElement p = driver.findElement(By.className("p1"));
System.out.println(p.getText());

エレメントをタグで取得することもできます。

WebElement tag = driver.findElement(By.tagName("a"));

セレンの実施例

セレンの基本を知ったので、私たちは自分のプロジェクトを作ることができます。この例では、スタックオーバーフローに関する最新の質問を見つけるプログラムを作成します。

私たちは簡単に始め、開いたスタックオーバーフローを可能にします。

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    Thread.sleep(3000);
    driver.quit();
}

さて、もしあなたがページのソースを見ると、すべての質問がclassNameのquestion-hyperlink aタグであることがわかりquestion-hyperlink 。複数の質問があるのでしかし、我々は、使用ListWebElement代わりに、 WebElement 。したがって、私たちはできる

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
}

今、私たちは、取得する必要があるhrefの属性の質問のリンクを持っているタグを、。 aこれを行うために、各WebElementgetAttribute("href")を使用することができます。

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
    System.out.println(list.size());
    list.forEach(e->System.out.println(e.getAttribute("href")));
    driver.quit();
}

Stack-overflowでトップ質問のリンクが表示されます。

セレンのWebElementの属性の取得

WebElementの属性を取得するには、そのWebElement getAttributeを使用します。たとえば、次のhtmlタグ

<a id="click" href="https://www.google.com">

要素のhref属性は

WebElement e = driver.findElement(By.id("click"));
System.out.println(e.getAttribute("href")); //prints https://www.google.com


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow