简体   繁体   English

使用WEBDRIVER(JAVA)发送前如何处理AJAX POST数据

[英]How to manipulate AJAX POST data before send using WEBDRIVER ( JAVA )

I want to manipulate data before sending post data which is the using HTML page JQuery . 我想在发送使用HTML页面JQuery的发布数据之前操纵数据。

There is sending JSon post data below . 以下是发送JSon帖子数据的信息。 First loading page after second sending this data .... At this this point I want to manipulate JSon data then sent form . 在第二次发送此数据之后,首先加载页面..此时,我想操纵JSon数据,然后发送表单。

posts *[["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]]* 帖子 *[["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]]*

Data sending url , method post : www.domain.com/ajax/bz 数据发送网址,方法发布:www.domain.com/ajax/bz

I want to manipulate some data from there . 我想从那里操纵一些数据。

It's possible with WEBDRIVER ? WEBDRIVER可能吗? I'm using JAVA. 我正在使用JAVA。

Could you help me about this ? 您能帮我一下吗? I searched but i didn't found answer. 我搜索了但没有找到答案。 I hope it's possible and you can help me about that. 我希望这是可能的,您可以在这方面为我提供帮助。

Thank you all ! 谢谢你们 !

It's possible by injecting a piece of JavaScript. 可以通过注入一段JavaScript来实现。

If what you need just requires to simply force an input then : 如果您只需要简单地输入即可,则:

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

You could also hook the post function : 您还可以挂钩发布功能:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM