网络浏览/浏览器自动化

5
我正在创建一个Java程序,该程序可以在互联网上登录网站账户并发布内容。例如,运行程序 -> Tumblr -> 发布“Hello World” -> 登出Tumblr。

目前我正在使用Robot类来实现这一功能... http://download.oracle.com/javase/6/docs/api/java/awt/Robot.html

但是展望未来,我发现会有很多挑战(因为它基于坐标、鼠标点击和键盘操作,网页更新可能会导致程序崩溃)。

是否有一种方式可以进行网页浏览器自动化?(例如,浏览网站、填写表格等)(最好使用Java、Python、C++或PHP)

5个回答

9
Selenium是您需要的绝佳选择。不仅可以使用Java(以及许多其他语言)为其编写脚本,还可以安装浏览器插件并记录您的操作,以快速学习其语法。 http://seleniumhq.org/

在Selenium下面是WebDriver,它是实际的浏览器控制部分。它有一个很好的Java API;如果你是程序员,直接使用它可能比通过Selenium更容易。 - Tom Anderson

2

您也可以尝试使用JExplorer Teamdev: Jexplorer。但是,除非您是学生或在开源社区工作,否则它不是免费的。该工具使用Swing来模拟Internet Explorer。Watij基于JExplorer。


2

Watij是一个基于Java的Web测试框架,可以驱动Web浏览器。虽然它名义上是用于测试,但它可以做你想要的事情。您可以智能地搜索要驱动的按钮/控件,并且由于它控制浏览器,所有客户端功能(脚本等)都将被正确触发。


我想知道,它是否也能够进行页面导航 @Brian?而不会破坏目标网站功能上的任何JavaScript? - gumuruh

1

0

嗨,我想要一个和您一样的程序,可以在网上冲浪。

我使用谷歌浏览器中的Selenium。如果您想要使用Selenium,您需要从http://www.seleniumhq.org/download/下载最新版本并在Neatbeans或Eclipse中导入jar文件。(Selenium客户端和WebDriver语言绑定,Selenium独立服务器)之后,您还需要从谷歌下载https://sites.google.com/a/chromium.org/chromedriver/-- 谷歌驱动程序,也是最新版本,然后解压文件并保存到您的电脑上。以下是我使用的代码:

package teszt;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Teszt {  
    public static void main(String[] args) {
String exePath = "C:\\Users\\Magor\\Downloads\\chromedriver.exe";
        System.setProperty("webdriver.chrome.driver", exePath);
        WebDriver driver = new ChromeDriver();
        driver.get("http://www.google.com");
}}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接