我需要创建一个用例(使用Selenium),我在其中通过浏览器使用Cookie发送HTTP调用,并在文本文件中捕获返回值。
我需要做什么,我在命令行中使用CURL运行它,但是我们遇到了相同的问题,因此希望使用真实的UI浏览器进行验证。
另一件事是我需要将URL放在一个测试文件中,我可以从中读取并发送到浏览器。然后对于每个调用,我需要捕获cookie和标题。我有以下代码/逻辑,有人可以详细说明吗?
---> read a file....
File aFile = new File("../blah.txt");
BufferedReader input = new BufferedReader( new FileReader( aFile ));
String line = null; //not declared within while loop
while (( line = input.readLine()) != null){
callsel(line);
System.out.println(line);
}
--> call selenium .. Open the url.. Pass cookies
public void callsel(String url) {
selenium.open(url);
selenium.waitForPageToLoad("120000");
selenium.createCookie("","");
selenium.createCookie("","");
selenium.open(url);
selenium.waitForPageToLoad("120000");
---> ur page is open now..
}
}
答案 0 :(得分:3)
我会推荐Selenium IDE或Selenium RC。在IDE中,您只能在Firefox中运行测试,但它是Selenium的一个很好的介绍。
您可能最感兴趣的命令是createCookie
,open
和storeHtmlSource
。为了将HTML源代码保存到文本文件,您可能希望升级到Selenium RC并使用您首选的客户端语言实现它。
有用的链接
答案 1 :(得分:2)
在请求页面之前不确定是否要修改cookie,但在Java中使用此代码,您将捕获请求后返回的所有HTML。
String url = "http://host/";
HttpCommandProcessor proc;
proc = new HttpCommandProcessor("localhost", 4444, "*iexplore", url);
Selenium selenium = new DefaultSelenium(proc);
selenium.start();
selenium.open("pageToOpen.htm");
String HTMLOutput = selenium.getHtmlSource();
String BodyOutput = selenium.getBodyText();
更新。稍微更改了你的代码。返回正文数据,只需将tmpString值保存到文本文件中,你就可以从页面中恢复Body Text(更改这是你想要的所有html)。
---> read a file....
File aFile = new File("../blah.txt");
BufferedReader input = new BufferedReader( new FileReader( aFile ));
String line = null; //not declared within while loop
while (( line = input.readLine()) != null){
String tmpString = callsel(line);
System.out.println("Line: " + line + " HTML:" + tmpString);
}
--> call selenium .. Open the url.. Pass cookies
public string callsel(String url) {
selenium.open(url);
selenium.waitForPageToLoad("120000");
selenium.createCookie("","");
selenium.createCookie("","");
selenium.open(url);
selenium.waitForPageToLoad("120000");
return selenium.getBodyText();
---> ur page is open now..
}
}