I wrote the problem in StackOverflow at:
https://stackoverflow.com/questions/42538839/how-do-i-click-on-a-row-in-a-jquery-datatable-using-htmlunit
I have a unit test that can be used which directly accesses my website with an example web page. That source code is below.
(import java.io.IOException;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.DomElement;
import com.gargoylesoftware.htmlunit.html.HtmlDivision;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSpan;
import com.gargoylesoftware.htmlunit.html.HtmlTable;
import com.gargoylesoftware.htmlunit.html.HtmlTableBody;
import com.gargoylesoftware.htmlunit.html.HtmlTableRow;
/**
* @author gary_kephart
*
*/
public class DataTablesTestCase
{
private static final long BG_JS_WAIT_MS = 15000;
private static final String TEST_PAGE_URL = "http://photeus.com/campaigner-data/";
private WebClient webClient;
public HtmlPage getPage(
String url) throws Exception
{
HtmlPage htmlPage = this.webClient.getPage(url);
this.webClient.waitForBackgroundJavaScriptStartingBefore(BG_JS_WAIT_MS);
return htmlPage;
}
/**
* @param domElement
* @return
* @throws IOException
*/
public HtmlPage clickOn(
DomElement domElement) throws IOException
{
HtmlPage htmlPage = domElement.click();
htmlPage.getWebClient().waitForBackgroundJavaScript(BG_JS_WAIT_MS);
return htmlPage;
}
@SuppressWarnings("unchecked")
protected <E extends HtmlElement> E getElementById(
HtmlElement parent,
String tagName,
String id)
{
return (E)parent.getElementsByAttribute(tagName, "id", id).get(0);
}
)
@Before
public void setUp()
{
this.webClient = new WebClient();
this.webClient.getOptions().setCssEnabled(true);
this.webClient.getOptions().setJavaScriptEnabled(true);
this.webClient.getOptions().setTimeout(0);
this.webClient.getOptions().setUseInsecureSSL(true);
}
@Test
public void testSuccess() throws Exception
{
HtmlPage htmlPage = getPage(TEST_PAGE_URL);
Assert.assertEquals("Campaigner Data - Home", htmlPage.getTitleText());
HtmlDivision div = getElementById(htmlPage.getBody(), HtmlDivision.TAG_NAME,
"elections_wrapper");
HtmlTable table = getElementById(div, HtmlTable.TAG_NAME, "elections");
List<HtmlTableBody> bodies = table.getBodies();
HtmlTableBody body = bodies.get(0);
List<HtmlTableRow> bodyRows = body.getRows();
HtmlTableRow tableRow = bodyRows.get(0);
HtmlPage htmlPage2 = clickOn(tableRow);
Assert.assertEquals("Campaigner Data - HtmlUnit Datatable Row Test", htmlPage2.getTitleText());
HtmlSpan elementIdSpan = getElementById(htmlPage2.getBody(), HtmlSpan.TAG_NAME, "elementId");
String elementId = elementIdSpan.asText();
Assert.assertNotNull(elementIdSpan);
Assert.assertNotNull(elementId);
}
}
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too