Tag: htmlunit

生产中的HtmlUnit + Selenium

我目前正在使用HtmlUnit和Selenium在我的生产代码中驱动它(WebDriver)。 我正在以编程方式使用这些库进行各种网站的搜索和交互,并且取得了一些成功,并且没有遇到内存问题(确保会话始终被清理)。 我想知道这些库是否适用于生产环境或推荐使用。 由于有关自动化测试的大量信息而不是我如何使用它,因此很难通过Google找到。 我意识到这是一个相当普遍的问题,但我正在寻求关于这些库的建议以及可能更好的替代方案。

Html,处理JSON响应

我有一个页面作为HtmlUnit中的UnexpectedPage返回,响应是JSON。 我可以使用HTMLUnit来解析这个吗?还是需要一个额外的库?

示例HtmlUnit测试失败

我试图通过Junit运行示例HtmlUnit测试用例。 我的项目是以Maven为基础的。 我是否需要在编译和测试时将所有depisions listen添加到我的POM中? http://htmlunit.sourceforge.net/dependencies.html现在我添加了htmlunit依赖项,httpconnections和nekohtml。 样品测试: @Test public void homePage() throws Exception { WebClient webClient = new WebClient(BrowserVersion.CHROME_16); final HtmlPage page = webClient.getPage(“http://htmlunit.sourceforge.net”); assertEquals(“HtmlUnit – Welcome to HtmlUnit”, page.getTitleText()); final String pageAsXml = page.asXml(); assertTrue(pageAsXml.contains(“”)); final String pageAsText = page.asText(); assertTrue(pageAsText.contains(“Support for the HTTP and HTTPS protocols”)); webClient.closeAllWindows(); } 测试失败,出现以下错误: homePage(ActiveComponentTest) Time elapsed: 2.06 sec […]

如何使用HtmlUnit获取HTML页面

我知道你可能认为这个问题很愚蠢,但我需要使用HtmlUnit。 但是,它以XML或文本forms返回页面。 我不知道如何获得纯HTML(与浏览器返回的源代码相同) 我需要这个,因为我需要使用一些书面模块。 有任何想法吗?

使用htmlunit -Java访问Javascript生成的html

我试图能够测试一个使用javascript来呈现大部分HTML的网站。 使用HTMLUNIT浏览器,您如何能够访问javascript生成的html? 我正在浏览他们的文档,但不确定最佳方法是什么。 WebClient webClient = new WebClient(); HtmlPage currentPage = webClient.getPage(“some url”); String Source = currentPage.asXml(); System.out.println(Source); 这是一个简单的方法来获取页面的HTML,但你会使用domNode或其他方式来访问javascript生成的HTML吗?

使用HtmlUnit WebClient传递每个请求的基本身份validation凭据

我正在尝试为Web应用程序编写一个简单的冒烟测试。 应用程序通常使用基于表单的身份validation,但也接受基本身份validation,但由于默认情况下是基于表单的身份validation,因此它永远不会发送所需的身份validation,而只是发送登录表单。 在测试中,我尝试使用发送基本的auth头 WebClient webClient = new WebClient(); DefaultCredentialsProvider creds = new DefaultCredentialsProvider(); // Set some example credentials creds.addCredentials(“usr”, “pwd”); // And now add the provider to the webClient instance webClient.setCredentialsProvider(creds); webClient.getPage(“”) 我还尝试在WebRequest对象中填充凭据并将其传递给webClient.getPage方法。 但在服务器上我没有获得身份validation标头。 我怀疑WebClient只有在服务器明确询问它时才会发送身份validation标头,这种情况从未发生过。 所以问题是如何让WebClient在每个请求上发送Authentication头,包括第一个请求?

如何将HtmlUnit cookie保存到文件?

我想将HtmlUnit cookie保存到文件中,并在下次运行时从那个文件中加载它们。 我怎样才能做到这一点? 谢谢。

HTMLUnit:执行速度超慢?

我一直在使用HTMLUnit。 它很适合我的要求。 但它似乎非常缓慢。 例如:我使用HTMLUnit自动化了以下场景 Goto Google page Enter some text Click on the search button Get the title of the results page Click on the first result. 代码: long t1=System.currentTimeMillis(); Logger logger=Logger.getLogger(“”); logger.setLevel(Level.OFF); WebClient webClient=createWebClient(); WebRequest webReq=new WebRequest(new URL(“http://google.lk”)); HtmlPage googleMainPage=webClient.getPage(webReq); HtmlTextInput searchTextField=(HtmlTextInput) googleMainPage.getByXPath(“//input[@name=’q’]”).get(0); HtmlButton searchButton=(HtmlButton) googleMainPage.getByXPath(“//button[@name=’btnK’]”).get(0); searchTextField.type(“Sri Lanka”); System.out.println(“Text typed!”); HtmlPage googleResultsPage= searchButton.click(); System.out.println(“Search […]

如何在Java中使用HtmlUnit?

我正在尝试使用Java中的HtmlUnit登录网站。 首先我输入用户名然后输入密码。 之后我需要从下拉框中选择一个选项。 输入用户和密码似乎工作,但当我尝试从下拉框中选择项目时,我收到错误。 谁能帮我解决这个问题? 我的代码如下: import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlElement; import com.gargoylesoftware.htmlunit.html.HtmlOption; import com.gargoylesoftware.htmlunit.html.HtmlPage; import com.gargoylesoftware.htmlunit.html.HtmlSelect; public class homePage { public static void main(String[] args) throws Exception { final WebClient webClient = new WebClient(); final HtmlPage page = webClient.getPage(“website name here”); HtmlElement usrname = page.getElementByName(“username”); usrname.click(); usrname.type(“myusername”); HtmlElement psswrd = page.getElementByName(“password”); psswrd.click(); psswrd.type(“mypassword”); HtmlSelect select […]

如何从String创建HtmlUnit HTMLPage对象?

这个问题已经问了一次 ,但是API我改变了 ,而且答案已经无效了。 URL url = new URL(“http://www.example.com”); StringWebResponse response = new StringWebResponse(“Test”, url); HtmlPage page = HTMLParser.parseHtml(response, new TopLevelWindow(“top”, new WebClient())); System.out.println(page.getTitleText()); 无法完成,因为TopLevelWindow受到保护,因为扩展/实现窗口,因为这是荒谬的:) 有人知道怎么做吗? 我觉得奇怪的是它不能轻易完成。