【问题标题】:Programmatically perform action on button of a web page以编程方式对网页的按钮执行操作
【发布时间】:2014-09-09 13:42:02
【问题描述】:

我正在构建一个 android 应用程序来使用网络抓取访问网站。我想通过以编程方式单击当前网页上的按钮来访问特定网页。这是按钮点击对应的HTML元素。

    form method="post" action="http://localhost/example/start.php">
    <div><input type="submit" value="Start" id="someValue1"/>
    <input type="hidden" name="name1" value="value1" /></div></form>

当我点击按钮时弹出对话框询问我是否要转到该页面。所以我也必须点击弹出窗口的“是”或“否”按钮。出现的弹出对话框是由以下网页源代码引起。

    Y.on('click', M.util.show_confirm_dialog, "#someValue1", null, 
    {"message":"Are you sure that you want to continue?","continuelabel":"Start
    ","cancellabel":null});

我尝试以编程方式使用 Jsoup、HtmlUnit、Selenium 对单击按钮执行操作。但我无法成功。请给我一个方法来做到这一点。

【问题讨论】:

  • 以防万一你不知道,这是一件非常不可靠的事情,网站更改了它的源、布局、url、文件名等是什么?
  • @BenjaminPaul 该网站是一个 Moodle 网站。所以这不是一个案例

标签: javascript android selenium jsoup htmlunit


【解决方案1】:

你可以使用webview的url来调用javascript Android Calling JavaScript functions in WebView 所以,只需发送一个类似javascript:document.getElementById("myId").onclick();的命令

【讨论】:

  • 我尝试了您的方法以编程方式记录网站。但它只填充给定值的文本字段,不执行单击按钮。我的代码有什么问题? webView.loadUrl("javascript:"document.getElementById('username').value = '"+user+"';" +"document.getElementById('password').value = '"+pass+"';"+" document.getElementByName('submit').onclick();""};");
猜你喜欢
  • 2021-06-04
  • 1970-01-01
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多