【问题标题】:Automatically navigating a website with java使用java自动导航网站
【发布时间】:2019-07-11 20:16:49
【问题描述】:

几年前,我在 .NET 中制作了一个使用 webbrowser 控件的程序。有了它,我就能够自动登录网站、导航和下载图片。它是基于 GUI 的,因为它使用的是 webbrowser 控件。它的好处是我可以跟着看看有没有问题。

在 Java 中复制这个想法的最佳方式是什么?是否有类似的免费控件可以充当网络浏览器并提供对 DOM 的访问权限?

我怀疑最佳方法是使用 Google Chrome 开发者工具通过 GET/POST 方法复制登录,但起初更喜欢网络浏览器方法。

【问题讨论】:

  • 你可以用 Selenium 做到这一点
  • 如果你想做的是真的基于网络浏览器的 GUI,你可以使用 Java 的 Robot 类,虽然这可能需要做很多工作
  • 我将研究 Selenium。看起来这足以满足我这里的需求。机器人类可能会在某个时候派上用场。谢谢!
  • 即使可以在 Java 中完成,您也可能更喜欢在 Javascript 中完成。有大量的 javascript 单元测试框架可以提供您控制浏览器并与它进行本机交互所需的所有功能。

标签: java


【解决方案1】:

您可以为此使用Selenium。它是一个免费(开源)自动化测试套件,适用于跨不同浏览器和平台的 Web 应用程序。它主要专注于自动化基于 Web 的应用程序。

【讨论】:

    【解决方案2】:

    在 Java 中,您可以使用 Selenium,它可以让您完全控制 Web 浏览器和 DOM。 在 Selenium 中,Web Driver 是一个类,它提供对我们想要使用的浏览器的全自动控制。

    这可能对您有所帮助! 谢谢!

    【讨论】:

      【解决方案3】:

      您可以使用 JavaFX webView,类 javafx.scene.web.WebView。

      它使用符合 HTML 5 且似乎是最新的 Webkit 引擎(它在 java 8 和 9 中)。 该引擎与 JS 引擎有交互,可能有助于内省和导航。

      获取“窗口”JS对象的示例:

      JSObject window = (JSObject) webView.getEngine().executeScript("window");
      

      Webview 示例: JavaFx Webview HTML5 DragAndDrop

      【讨论】:

        猜你喜欢
        • 2010-12-14
        • 2017-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-19
        • 1970-01-01
        • 1970-01-01
        • 2011-12-11
        相关资源
        最近更新 更多