English 中文(简体)
How to execute random Javascript code on a web page?
原标题:

I m using htmlunit to test some pages and I d like to know how can I execute some javascript code in the context of the current page. I m aware that the docs say I d better emulate the behavior of a user on a page, but it isn t working this way :( (I have a div which has an onclick property, I call its click method but nothing happens). So I ve made some googling and tried:

JavaScriptEngine jse = webClient.getJavaScriptEngine();
jse.execute(page, what here?);

Seems like I have to instantiate the script first, but I ve found no info on how to do it (right). Could someone share a code snippet showing how to make webclient instance execute the needed code?

最佳回答

You need to call executeJavaScript() on the page, not on webClient.

Example:

WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3);
webClient.setJavaScriptEnabled(true);
HtmlPage page = webClient.getPage("http://www.google.com/ncr");
ScriptResult scriptResult = page.executeJavaScript("document.title");
System.out.println(scriptResult.getJavaScriptResult());

prints "Google". (I m sure you ll have some more exciting code to put in there.)

问题回答

I don t know the JavaScriptEngine you re quoting and maybe it s not the answer you want, but this sounds like a perfect case for Selenium IDE.

Selenium IDE is a Firefox add-on that records clicks, typing, and other actions to make a test, which you can play back in the browser.

In TestPlan using the HTMLUnit backend the google example is:

GotoURL http://www.google.com/ncr
set %Title% as evalJavaScript document.title
Notice %Title%




相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签