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