【问题标题】:How to manipulate AJAX POST data before send using WEBDRIVER ( JAVA )如何在使用 WEBDRIVER ( JAVA ) 发送之前操作 AJAX POST 数据
【发布时间】:2016-06-26 02:31:00
【问题描述】:

我想在发送使用 HTML 页面 JQuery 的帖子数据之前操作数据。

下面有发送 JSon 的 post 数据。第二次发送此数据后的第一个加载页面....此时我想操作 JSon 数据然后发送表单。

帖子 *[["qe:expose", Object { qe="su"}, 1457652370400, 0], ["slipstream:pageview", Object { description="unifiedHome", event_name="pageview", platform="web", more...}, 1457652370456, 0], ["slipstream:action", Object { description="fbLoginFallback", event_name="action", extra="{"gk":{"rhp":true},"qe":...0106"},"type":"signup"}", more...}, 1457652371149, 0]]*

数据发送url,方法post:www.domain.com/ajax/bz

我想从那里操作一些数据。

使用 WEBDRIVER 可以吗?我正在使用 JAVA。

你能帮我解决这个问题吗?我搜索但我没有找到答案。我希望这是可能的,你可以帮助我。

谢谢大家!

【问题讨论】:

  • 不,你不能那样做。您能告诉我们发布您的数据的目的吗?
  • 我怎么不能?你现在有 webdriver selenium 吗?或者 Chrome 扩展程序是如何工作的? Ad-Block 等等等等。或者 Chrome 是如何工作的?我想你不知道我在问什么......
  • 能否修改一下您的问题,以便我理解?
  • 感谢您提供帮助,但您不知道我在问什么和 selenium webdriver。
  • 驱动程序 = GetBrowser(); if (driver instanceof JavascriptExecutor) { driver.navigate().to(baseUrl);线程.sleep(5000); js = (JavascriptExecutor)驱动程序; js.executeScript("function showAlert() { alert('success'); }; showAlert()"); } else { System.out.println("JS 不支持"); }

标签: java ajax selenium xmlhttprequest webdriver


【解决方案1】:

可以通过注入一段 JavaScript 来实现。

如果您只需要简单地强制输入,那么:

WebDriver driver = new FirefoxDriver();
driver.get("...");
((JavascriptExecutor)driver).executeScript("$('...').val('new value');");
driver.findElement(By.cssSelector("...")).click();  //submit

你也可以挂钩 post 功能:

WebDriver driver = new FirefoxDriver();
driver.get("...");
((JavascriptExecutor)driver).executeScript(
  "var ajax = $.ajax;" +
  "$.ajax = function(url, settings) {" +
  "  alert('post intercepted');" +
  "  ajax.apply(this, arguments);" +
  "};");
driver.findElement(By.cssSelector("...")).click();  //submit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多