3

昨日、私は Java でデータを取得するを投稿しました。Web ブラウザーが開いているときに Java プログラムを実行し、それを Web サイトで実行できることに興味があります。ブラウザで Facebook を開いている場合、ステータス ボックスに現在の時刻を入力してから [投稿] をクリックできますか? または、プログラムがユーザーからの入力を取得できるようにし (おそらくスキャナーを使用しますか?)、入力に基づいて、Google をロードし、検索バーに入力して検索をクリックすることができます。

4

1 に答える 1

4

Seleniumを使用してこれを行うことができます。

Selenium はブラウザを自動化します。それでおしまい。その力で何をするかは完全にあなた次第です。主に、テスト目的で Web アプリケーションを自動化するためのものですが、それだけに限定されるものではありません。退屈な Web ベースの管理タスクも自動化できます (自動化する必要があります!)。

これは、Google で「チーズ」という用語を検索するドキュメント ページの例です。

package org.openqa.selenium.example;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Selenium2Example  {
    public static void main(String[] args) {
        // Create a new instance of the Firefox driver
        // Notice that the remainder of the code relies on the interface, 
        // not the implementation.
        WebDriver driver = new FirefoxDriver();

        // And now use this to visit Google
        driver.get("http://www.google.com");
        // Alternatively the same thing can be done like this
        // driver.navigate().to("http://www.google.com");

        // Find the text input element by its name
        WebElement element = driver.findElement(By.name("q"));

        // Enter something to search for
        element.sendKeys("Cheese!");

        // Now submit the form. WebDriver will find the form for us from the element
        element.submit();

        // Check the title of the page
        System.out.println("Page title is: " + driver.getTitle());

        // Google's search is rendered dynamically with JavaScript.
        // Wait for the page to load, timeout after 10 seconds
        (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
            public Boolean apply(WebDriver d) {
                return d.getTitle().toLowerCase().startsWith("cheese!");
            }
        });

        // Should see: "cheese! - Google Search"
        System.out.println("Page title is: " + driver.getTitle());

        //Close the browser
        driver.quit();
    }
}
于 2013-02-27T18:13:32.353 に答える