如何用Java填写在线表格?

时间:2009-07-17 13:48:32

标签: java sms

我的手机提供商在其网站上提供有限数量的免费短信。我经常使用该服务,但我讨厌在浏览器中不断打开选项卡。

有没有人知道/指出我如何创建jar文件/命令行实用程序的正确方向,以便我可以在网站上填写相应的表单。我一直想用Java编写这样的项目代码,以防万一有人问我为什么不使用别的东西。

亲切的问候, LAR

8 个答案:

答案 0 :(得分:2)

尝试使用Google的WebdriverSelenium

答案 1 :(得分:2)

听起来你需要一个专为进行功能测试而设计的框架。它们充当浏览器并可以导航网站以进行测试和自动化。您不需要测试功能,但它仍然可以满足您的需求。

尝试HtmlUnitLiFT,这是基于HtmlUnit构建的更高级别的抽象。

答案 2 :(得分:1)

将Watij与Eclipse IDE一起使用。完成后,编译为.exe或使用批处理文件运行。

以下是我为填写Google搜索字段而编写的示例代码,可以针对您要控制的网络表单进行调整:

package goog;
import junit.framework.TestCase;
import watij.runtime.ie.IE;
import static watij.finders.SymbolFactory.*;
public class GTestCases extends TestCase {

 private static watij.runtime.ie.IE activeIE_m;
 public static IE attachToIE(String url) throws Exception {   
  if (activeIE_m==null)
     {
       activeIE_m = new IE();
    activeIE_m.start(url);
     } else {
       activeIE_m.goTo(url);
     }
  activeIE_m.bringToFront();
     return (activeIE_m);    
 }

 public static String getActiveUrl () throws Exception {  
  String currUrl = activeIE_m.url().toString();  
  return currUrl;
 }

 public void testGoogleLogin() throws Exception {
  IE ie = attachToIE("http://google.com");
     if ( ie.containsText("/Sign in/") ) {
      ie.div(id,"guser").link(0).click();
      if ( ie.containsText("Sign in with your") ||
        ie.containsText("Sign in to iGoogle with your")) {
       ie.textField(name,"Email").set("test@gmail.com");
       ie.textField(name,"Passwd").set("test");
       if ( ie.checkbox(name,"PersistentCookie").checked() ){
        ie.checkbox(name,"PersistentCookie").click();
       }
       ie.button(name,"signIn").click();       
      }
     }
     System.out.println("Login finished.");
    }

 public void testGoogleSearch() throws Exception {
  //IE ie = attachToIE( getActiveUrl() );
  IE ie = attachToIE( "http://www.google.com/advanced_search?hl=en" );
     ie.div(id,"opt-handle").click();
     ie.textField(name,"as_q").set("Watij");
     ie.selectList(name,"lr").select("English");
     ie.button(value,"Advanced Search").click();
     System.out.println("Search finished.");
 }

 public void testGoogleResult() throws Exception {
  IE ie = attachToIE( getActiveUrl() );
  ie.link(href,"http://groups.google.com/group/watij").click();
  System.out.println("Followed link.");
 }

}

答案 3 :(得分:0)

这取决于他们发送表单信息的方式。

如果他们使用简单的GET请求,您只需填写相应的网址参数即可。

否则您需要将表单信息发布到目标页面。

答案 4 :(得分:0)

您可以使用Watij,它在Internet Explorer上提供Java / COM接口。然后编写少量Java代码来导航表单,插入值并提交。

或者,如果它很简单,那么请查看HttpClient,这是一个简单的Java HTTP客户端API。

无论你做什么,请注意你不要违反你的服务条款(在测试过程中很容易 - 也许你最初应该在模拟界面上工作?)

答案 5 :(得分:0)

WebTest是另一个webapp测试框架,可能比其他人引用的替代方案更容易使用。

答案 6 :(得分:0)

查看Apache Commons Net Package。在那里,您可以向页面发送POSt请求。这是相当低的水平,但可能会做你想要的(如果不是你可能会检查功能测试套件,但它可能不是那么容易深入研究)。

答案 7 :(得分:0)

正如jjnguy所说,你需要剖析表格以找出所有参数。 使用它们,您可以使用Apache的HTTP Client形成您自己的请求并将其关闭。