1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.doc;
16
17 import java.util.Iterator;
18 import java.util.List;
19
20 import org.htmlunit.WebClient;
21 import org.htmlunit.WebServerTestCase;
22 import org.htmlunit.html.DomElement;
23 import org.htmlunit.html.DomNode;
24 import org.htmlunit.html.DomNodeList;
25 import org.htmlunit.html.HtmlAnchor;
26 import org.htmlunit.html.HtmlBody;
27 import org.htmlunit.html.HtmlDivision;
28 import org.htmlunit.html.HtmlForm;
29 import org.htmlunit.html.HtmlPage;
30 import org.htmlunit.html.HtmlSubmitInput;
31 import org.htmlunit.html.HtmlTextInput;
32 import org.junit.jupiter.api.Assertions;
33 import org.junit.jupiter.api.Test;
34
35
36
37
38
39
40
41 public class GettingStartedTest extends WebServerTestCase {
42
43
44
45
46 @Test
47 public void homePage() throws Exception {
48 try (WebClient webClient = new WebClient()) {
49 final HtmlPage page = webClient.getPage("https://www.htmlunit.org/");
50 Assertions.assertEquals("HtmlUnit – Welcome to HtmlUnit", page.getTitleText());
51
52 final String pageAsXml = page.asXml();
53 Assertions.assertTrue(pageAsXml.contains("<body class=\"topBarDisabled\">"));
54
55 final String pageAsText = page.asNormalizedText();
56 Assertions.assertTrue(pageAsText.contains("Support for the HTTP and HTTPS protocols"));
57 }
58 }
59
60
61
62
63 @Test
64 public void xpath() throws Exception {
65 try (WebClient webClient = new WebClient()) {
66 final HtmlPage page = webClient.getPage("https://www.htmlunit.org/");
67
68
69 final List<?> divs = page.getByXPath("//div");
70
71
72 final HtmlDivision div = (HtmlDivision) page.getByXPath("//div[@id='banner']").get(0);
73 }
74 }
75
76
77
78
79 @Test
80 public void cssSelector() throws Exception {
81 try (WebClient webClient = new WebClient()) {
82 final HtmlPage page = webClient.getPage("https://www.htmlunit.org/");
83
84
85 final DomNodeList<DomNode> divs = page.querySelectorAll("div");
86 for (final DomNode div : divs) {
87
88 }
89
90
91 final DomNode div = page.querySelector("div#breadcrumbs");
92 }
93 }
94
95
96
97
98 private void submittingForm() throws Exception {
99 try (WebClient webClient = new WebClient()) {
100
101
102 final HtmlPage page = webClient.getPage("http://some_url");
103
104
105
106 final HtmlForm form = page.getFormByName("myform");
107
108 final HtmlSubmitInput button = form.getInputByName("submitbutton");
109 final HtmlTextInput textField = form.getInputByName("userid");
110
111
112 textField.type("root");
113
114
115 final HtmlPage secondPage = button.click();
116 }
117 }
118
119
120
121
122 @Test
123 public void extractTextToc() throws Exception {
124 try (WebClient webClient = new WebClient()) {
125 final HtmlPage page = webClient.getPage("https://www.htmlunit.org/");
126
127 final DomNode sponsoringDiv = page.querySelector("#bodyColumn > section:nth-child(1) > div:nth-child(2)");
128
129
130
131
132 final String content = sponsoringDiv.asNormalizedText();
133 }
134 }
135
136
137
138
139 @Test
140 public void extractTextFromBody() throws Exception {
141 try (WebClient webClient = new WebClient()) {
142 final HtmlPage page = webClient.getPage("https://www.htmlunit.org/");
143
144 final HtmlBody body = page.getBody();
145
146
147
148
149 final String bodyContent = body.asNormalizedText();
150 }
151 }
152
153
154
155
156 private void getElements() throws Exception {
157 try (WebClient webClient = new WebClient()) {
158 final HtmlPage page = webClient.getPage("http://some_url");
159
160 final HtmlDivision div = page.getHtmlElementById("some_div_id");
161 final HtmlAnchor anchor = page.getAnchorByName("anchor_name");
162 }
163 }
164
165
166
167
168 private void getElements2() throws Exception {
169 try (WebClient webClient = new WebClient()) {
170 final HtmlPage page = webClient.getPage("http://some_url");
171
172 final DomNodeList<DomElement> inputs = page.getElementsByTagName("input");
173 final Iterator<DomElement> nodesIterator = inputs.iterator();
174
175 }
176 }
177 }