Revision 120:ae1d99468601
pom.xml | ||
---|---|---|
4 | 4 |
|
5 | 5 |
<modelVersion>4.0.0</modelVersion> |
6 | 6 |
|
7 |
<name>M2U UPass Admin</name> |
|
8 | 7 |
<groupId>net.penril</groupId> |
9 | 8 |
<artifactId>m2u-upass-admin</artifactId> |
10 | 9 |
<version>2.0-SNAPSHOT</version> |
11 | 10 |
<packaging>war</packaging> |
12 |
|
|
11 |
<name>M2U UPass Admin</name> |
|
13 | 12 |
<properties> |
14 | 13 |
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
15 | 14 |
<cobertura.version>1.9.4.1</cobertura.version> |
16 |
<config.postfix></config.postfix>
|
|
17 |
<m2u-upass-classifier></m2u-upass-classifier>
|
|
15 |
<config.postfix />
|
|
16 |
<m2u-upass-classifier />
|
|
18 | 17 |
</properties> |
19 | 18 |
<reporting> |
20 | 19 |
<plugins> |
... | ... | |
25 | 24 |
</plugin> |
26 | 25 |
</plugins> |
27 | 26 |
</reporting> |
28 |
|
|
27 |
<distributionManagement> |
|
28 |
<snapshotRepository> |
|
29 |
<id>penril.nexus.repo</id> |
|
30 |
<name>Penril Nexus Repo</name> |
|
31 |
<url>scp://staging.penril.net/usr/share/tomcat5/sonatype-work/nexus/storage/snapshots</url> |
|
32 |
<uniqueVersion>false</uniqueVersion> |
|
33 |
</snapshotRepository> |
|
34 |
</distributionManagement> |
|
29 | 35 |
<build> |
30 |
<sourceDirectory>src</sourceDirectory> |
|
31 |
<resources> |
|
32 |
<resource> |
|
33 |
<directory>resource</directory> |
|
34 |
</resource> |
|
35 |
</resources> |
|
36 |
<testSourceDirectory>test</testSourceDirectory> |
|
37 |
<!-- <outputDirectory>${basedir}/WebContent/WEB-INF/classes</outputDirectory> --> |
|
38 | 36 |
<pluginManagement> |
39 | 37 |
<plugins> |
40 | 38 |
<plugin> |
39 |
<groupId>org.codehaus.mojo</groupId> |
|
40 |
<artifactId>cobertura-maven-plugin</artifactId> |
|
41 |
<version>2.5.1</version> |
|
42 |
</plugin> |
|
43 |
<plugin> |
|
41 | 44 |
<groupId>org.apache.maven.plugins</groupId> |
42 | 45 |
<artifactId>maven-antrun-plugin</artifactId> |
43 | 46 |
<version>1.6</version> |
44 | 47 |
</plugin> |
45 | 48 |
<plugin> |
46 |
<groupId>org.apache.maven.plugins</groupId> |
|
47 |
<artifactId>maven-compiler-plugin</artifactId> |
|
48 |
<version>2.3.2</version> |
|
49 |
<configuration> |
|
50 |
<source>1.6</source> |
|
51 |
<target>1.6</target> |
|
52 |
</configuration> |
|
53 |
</plugin> |
|
54 |
<plugin> |
|
55 |
<groupId>org.codehaus.mojo</groupId> |
|
56 |
<artifactId>cobertura-maven-plugin</artifactId> |
|
57 |
<version>2.5.1</version> |
|
58 |
</plugin> |
|
59 |
<plugin> |
|
60 | 49 |
<groupId>org.glassfish</groupId> |
61 | 50 |
<artifactId>maven-embedded-glassfish-plugin</artifactId> |
62 | 51 |
<version>3.1.1</version> |
... | ... | |
70 | 59 |
<contextRoot>${project.artifactId}</contextRoot> |
71 | 60 |
</configuration> |
72 | 61 |
</plugin> |
62 |
<plugin> |
|
63 |
<groupId>org.apache.maven.plugins</groupId> |
|
64 |
<artifactId>maven-compiler-plugin</artifactId> |
|
65 |
<version>2.3.2</version> |
|
66 |
<configuration> |
|
67 |
<source>1.6</source> |
|
68 |
<target>1.6</target> |
|
69 |
</configuration> |
|
70 |
</plugin> |
|
73 | 71 |
</plugins> |
74 | 72 |
</pluginManagement> |
73 |
<sourceDirectory>src</sourceDirectory> |
|
74 |
<resources> |
|
75 |
<resource> |
|
76 |
<directory>resource</directory> |
|
77 |
</resource> |
|
78 |
</resources> |
|
79 |
<testSourceDirectory>test</testSourceDirectory> |
|
80 |
<!-- <outputDirectory>${basedir}/WebContent/WEB-INF/classes</outputDirectory> --> |
|
75 | 81 |
<plugins> |
76 | 82 |
<plugin> |
77 | 83 |
<groupId>org.apache.maven.plugins</groupId> |
... | ... | |
82 | 88 |
</configuration> |
83 | 89 |
</plugin> |
84 | 90 |
<plugin> |
85 |
<groupId>org.mortbay.jetty</groupId>
|
|
86 |
<artifactId>maven-jetty-plugin</artifactId>
|
|
87 |
<version>6.1.16</version>
|
|
91 |
<groupId>org.apache.maven.plugins</groupId>
|
|
92 |
<artifactId>maven-compiler-plugin</artifactId>
|
|
93 |
<version>2.3.2</version>
|
|
88 | 94 |
<configuration> |
89 |
<webAppSourceDirectory>${basedir}/WebContent</webAppSourceDirectory> |
|
95 |
<source>1.6</source> |
|
96 |
<target>1.6</target> |
|
90 | 97 |
</configuration> |
91 | 98 |
</plugin> |
99 |
<plugin> |
|
100 |
<artifactId>maven-failsafe-plugin</artifactId> |
|
101 |
<version>2.6</version> |
|
102 |
<executions> |
|
103 |
<execution> |
|
104 |
<goals> |
|
105 |
<goal>integration-test</goal> |
|
106 |
<goal>verify</goal> |
|
107 |
</goals> |
|
108 |
</execution> |
|
109 |
</executions> |
|
110 |
<configuration> |
|
111 |
<includes> |
|
112 |
<include>**/FirstTestWithSeleniumBuilder.java</include> |
|
113 |
<include>**/AnotherTestWithSeleniumBuilder.java</include> |
|
114 |
</includes> |
|
115 |
</configuration> |
|
116 |
<dependencies> |
|
117 |
<dependency> |
|
118 |
<groupId>net.sourceforge.cobertura</groupId> |
|
119 |
<artifactId>cobertura-runtime</artifactId> |
|
120 |
<version>${cobertura.version}</version> |
|
121 |
<!-- <scope>provided</scope> --> |
|
122 |
<scope>compile</scope> |
|
123 |
<type>pom</type> |
|
124 |
</dependency> |
|
125 |
</dependencies> |
|
126 |
</plugin> |
|
92 | 127 |
</plugins> |
93 | 128 |
</build> |
129 |
|
|
130 |
|
|
131 |
|
|
94 | 132 |
<profiles> |
95 | 133 |
<profile> |
96 |
<id>env-dev-penril</id>
|
|
134 |
<id>env-staging-ci</id>
|
|
97 | 135 |
<activation> |
98 | 136 |
<property> |
99 | 137 |
<name>env</name> |
100 |
<value>dev-penril</value>
|
|
138 |
<value>staging-ci</value>
|
|
101 | 139 |
</property> |
102 | 140 |
</activation> |
103 |
<distributionManagement> |
|
104 |
<snapshotRepository> |
|
105 |
<id>penril.nexus.repo</id> |
|
106 |
<name>Penril Nexus Repo</name> |
|
107 |
<url>scp://staging.penril.net/usr/share/tomcat5/sonatype-work/nexus/storage/snapshots</url> |
|
108 |
</snapshotRepository> |
|
109 |
</distributionManagement> |
|
110 | 141 |
<properties> |
111 |
<config.postfix>.dev-penril</config.postfix>
|
|
142 |
<config.postfix>.staging-ci</config.postfix>
|
|
112 | 143 |
</properties> |
144 |
<build> |
|
145 |
<plugins> |
|
146 |
<plugin> |
|
147 |
<groupId>org.glassfish</groupId> |
|
148 |
<artifactId>maven-embedded-glassfish-plugin</artifactId> |
|
149 |
<configuration> |
|
150 |
<app>${project.build.directory}/${project.artifactId}-${project.version}-${m2u-upass-classifier}.war</app> |
|
151 |
<!-- <app>${project.build.directory}/${project.artifactId}-${project.version}</app> --> |
|
152 |
</configuration> |
|
153 |
<executions> |
|
154 |
<execution> |
|
155 |
<id>start-glassfish</id> |
|
156 |
<phase>pre-integration-test</phase> |
|
157 |
<goals> |
|
158 |
<goal>start</goal> |
|
159 |
</goals> |
|
160 |
</execution> |
|
161 |
<execution> |
|
162 |
<id>glassfish-deploy</id> |
|
163 |
<phase>pre-integration-test</phase> |
|
164 |
<goals> |
|
165 |
<goal>deploy</goal> |
|
166 |
</goals> |
|
167 |
</execution> |
|
168 |
</executions> |
|
169 |
<dependencies> |
|
170 |
<dependency> |
|
171 |
<groupId>net.sourceforge.cobertura</groupId> |
|
172 |
<artifactId>cobertura-runtime</artifactId> |
|
173 |
<version>${cobertura.version}</version> |
|
174 |
<!-- <scope>provided</scope> --> |
|
175 |
<scope>compile</scope> |
|
176 |
<type>pom</type> |
|
177 |
</dependency> |
|
178 |
</dependencies> |
|
179 |
</plugin> |
|
180 |
<plugin> |
|
181 |
<artifactId>maven-surefire-plugin</artifactId> |
|
182 |
<configuration> |
|
183 |
<classesDirectory>${project.build.directory}/generated-classes/cobertura</classesDirectory> |
|
184 |
<forkMode>none</forkMode> |
|
185 |
<skipTests>true</skipTests> |
|
186 |
</configuration> |
|
187 |
</plugin> |
|
188 |
</plugins> |
|
189 |
</build> |
|
190 |
<dependencies> |
|
191 |
<dependency> |
|
192 |
<groupId>axis</groupId> |
|
193 |
<artifactId>axis</artifactId> |
|
194 |
<version>1.4</version> |
|
195 |
<type>jar</type> |
|
196 |
<scope>compile</scope> |
|
197 |
</dependency> |
|
198 |
</dependencies> |
|
113 | 199 |
</profile> |
114 | 200 |
<profile> |
115 | 201 |
<id>env-dev-m2u</id> |
... | ... | |
180 | 266 |
</build> |
181 | 267 |
</profile> |
182 | 268 |
<profile> |
183 |
<id>env-staging-ci</id>
|
|
269 |
<id>env-dev-penril</id>
|
|
184 | 270 |
<activation> |
185 | 271 |
<property> |
186 | 272 |
<name>env</name> |
187 |
<value>staging-ci</value>
|
|
273 |
<value>dev-penril</value>
|
|
188 | 274 |
</property> |
189 | 275 |
</activation> |
190 | 276 |
<properties> |
191 |
<config.postfix>.staging-ci</config.postfix> |
|
277 |
<config.postfix>.dev-penril</config.postfix> |
|
278 |
</properties> |
|
279 |
</profile> |
|
280 |
<profile> |
|
281 |
<id>env-maybank-dev</id> |
|
282 |
<activation> |
|
283 |
<property> |
|
284 |
<name>env</name> |
|
285 |
<value>maybank-dev</value> |
|
286 |
</property> |
|
287 |
</activation> |
|
288 |
<properties> |
|
289 |
<config.postfix>.maybank-dev</config.postfix> |
|
192 | 290 |
</properties> |
193 | 291 |
<build> |
194 | 292 |
<plugins> |
... | ... | |
196 | 294 |
<groupId>org.glassfish</groupId> |
197 | 295 |
<artifactId>maven-embedded-glassfish-plugin</artifactId> |
198 | 296 |
<configuration> |
199 |
<!-- <app>${project.build.directory}/${project.artifactId}-${project.version}-${m2u-upass-classifier}.war</app> --> |
|
200 |
<app>${project.build.directory}/${project.artifactId}-${project.version}</app> |
|
201 |
</configuration> |
|
202 |
<executions> |
|
203 |
<execution> |
|
204 |
<id>start-glassfish</id> |
|
205 |
<phase>pre-integration-test</phase> |
|
206 |
<goals> |
|
207 |
<goal>start</goal> |
|
208 |
</goals> |
|
209 |
</execution> |
|
210 |
<execution> |
|
211 |
<id>glassfish-deploy</id> |
|
212 |
<phase>pre-integration-test</phase> |
|
213 |
<goals> |
|
214 |
<goal>deploy</goal> |
|
215 |
</goals> |
|
216 |
</execution> |
|
217 |
</executions> |
|
218 |
<dependencies> |
|
219 |
<dependency> |
|
220 |
<groupId>net.sourceforge.cobertura</groupId> |
|
221 |
<artifactId>cobertura-runtime</artifactId> |
|
222 |
<version>${cobertura.version}</version> |
|
223 |
<!-- <scope>provided</scope> --> |
|
224 |
<scope>compile</scope> |
|
225 |
<type>pom</type> |
|
226 |
</dependency> |
|
227 |
</dependencies> |
|
228 |
</plugin> |
|
229 |
<plugin> |
|
230 |
<artifactId>maven-surefire-plugin</artifactId> |
|
231 |
<configuration> |
|
232 |
<classesDirectory>${project.build.directory}/generated-classes/cobertura</classesDirectory> |
|
233 |
<forkMode>none</forkMode> |
|
297 |
<app>${project.build.directory}/${project.artifactId}-${project.version}.war</app> |
|
234 | 298 |
</configuration> |
235 | 299 |
</plugin> |
236 | 300 |
</plugins> |
237 | 301 |
</build> |
238 |
<dependencies> |
|
239 |
<dependency> |
|
240 |
<groupId>axis</groupId> |
|
241 |
<artifactId>axis</artifactId> |
|
242 |
<version>1.4</version> |
|
243 |
<type>jar</type> |
|
244 |
<scope>compile</scope> |
|
245 |
</dependency> |
|
246 |
</dependencies> |
|
247 | 302 |
</profile> |
303 |
|
|
304 |
|
|
305 |
|
|
248 | 306 |
<profile> |
249 | 307 |
<id>env-staging-penril</id> |
250 | 308 |
<activation> |
... | ... | |
253 | 311 |
<value>staging-penril</value> |
254 | 312 |
</property> |
255 | 313 |
</activation> |
256 |
<distributionManagement> |
|
257 |
<snapshotRepository> |
|
258 |
<id>penril.nexus.repo</id> |
|
259 |
<name>Penril Nexus Repo</name> |
|
260 |
<url>scp://staging.penril.net/usr/share/tomcat5/sonatype-work/nexus/storage/snapshots</url> |
|
261 |
</snapshotRepository> |
|
262 |
</distributionManagement> |
|
263 | 314 |
<properties> |
264 | 315 |
<config.postfix>.staging-penril</config.postfix> |
265 | 316 |
</properties> |
... | ... | |
286 | 337 |
</plugins> |
287 | 338 |
</build> |
288 | 339 |
</profile> |
289 |
<profile> |
|
290 |
<id>env-maybank-dev</id> |
|
291 |
<activation> |
|
292 |
<property> |
|
293 |
<name>env</name> |
|
294 |
<value>maybank-dev</value> |
|
295 |
</property> |
|
296 |
</activation> |
|
297 |
<properties> |
|
298 |
<config.postfix>.maybank-dev</config.postfix> |
|
299 |
</properties> |
|
300 |
</profile> |
|
340 |
|
|
341 |
|
|
342 |
|
|
301 | 343 |
<profile> |
302 | 344 |
<id>cobertura-instrument</id> |
303 | 345 |
<activation> |
... | ... | |
406 | 448 |
</dependencies> |
407 | 449 |
</profile> |
408 | 450 |
</profiles> |
451 |
|
|
452 |
|
|
453 |
|
|
409 | 454 |
<dependencies> |
410 | 455 |
<dependency> |
456 |
<groupId>junit</groupId> |
|
457 |
<artifactId>junit</artifactId> |
|
458 |
<version>4.8.2</version> |
|
459 |
<type>jar</type> |
|
460 |
<scope>test</scope> |
|
461 |
</dependency> |
|
462 |
<dependency> |
|
463 |
<groupId>net.penril</groupId> |
|
464 |
<artifactId>m2u-upass-core</artifactId> |
|
465 |
<version>2.0-SNAPSHOT</version> |
|
466 |
<classifier>${m2u-upass-classifier}</classifier> |
|
467 |
</dependency> |
|
468 |
<dependency> |
|
469 |
<groupId>net.penril</groupId> |
|
470 |
<artifactId>m2u-upass-admin-core</artifactId> |
|
471 |
<version>2.0-SNAPSHOT</version> |
|
472 |
<exclusions> |
|
473 |
<exclusion> |
|
474 |
<artifactId>saaj-api</artifactId> |
|
475 |
<groupId>javax.xml.soap</groupId> |
|
476 |
</exclusion> |
|
477 |
<exclusion> |
|
478 |
<artifactId>axis-jaxrpc</artifactId> |
|
479 |
<groupId>org.apache.axis</groupId> |
|
480 |
</exclusion> |
|
481 |
<exclusion> |
|
482 |
<artifactId>axis-saaj</artifactId> |
|
483 |
<groupId>org.apache.axis</groupId> |
|
484 |
</exclusion> |
|
485 |
</exclusions> |
|
486 |
</dependency> |
|
487 |
<dependency> |
|
411 | 488 |
<groupId>net.penril.onlineapps</groupId> |
412 | 489 |
<artifactId>oa-mailbox</artifactId> |
413 | 490 |
<version>0.9-SNAPSHOT</version> |
... | ... | |
599 | 676 |
<scope>compile</scope> |
600 | 677 |
</dependency> |
601 | 678 |
<dependency> |
602 |
<groupId>junit</groupId> |
|
603 |
<artifactId>junit</artifactId> |
|
604 |
<version>4.8.2</version> |
|
605 |
<type>jar</type> |
|
606 |
<scope>test</scope> |
|
607 |
</dependency> |
|
608 |
<dependency> |
|
609 | 679 |
<groupId>javax.sql</groupId> |
610 | 680 |
<artifactId>jdbc-stdext</artifactId> |
611 | 681 |
<version>2.0</version> |
... | ... | |
664 | 734 |
<version>0.2a-20111103</version> |
665 | 735 |
</dependency> |
666 | 736 |
<dependency> |
667 |
<groupId>net.penril</groupId> |
|
668 |
<artifactId>m2u-upass-core</artifactId> |
|
669 |
<version>2.0-SNAPSHOT</version> |
|
670 |
</dependency> |
|
671 |
<dependency> |
|
672 |
<groupId>net.penril</groupId> |
|
673 |
<artifactId>m2u-upass-admin-core</artifactId> |
|
674 |
<version>2.0-SNAPSHOT</version> |
|
675 |
<exclusions> |
|
676 |
<exclusion> |
|
677 |
<artifactId>saaj-api</artifactId> |
|
678 |
<groupId>javax.xml.soap</groupId> |
|
679 |
</exclusion> |
|
680 |
<exclusion> |
|
681 |
<artifactId>axis-jaxrpc</artifactId> |
|
682 |
<groupId>org.apache.axis</groupId> |
|
683 |
</exclusion> |
|
684 |
<exclusion> |
|
685 |
<artifactId>axis-saaj</artifactId> |
|
686 |
<groupId>org.apache.axis</groupId> |
|
687 |
</exclusion> |
|
688 |
</exclusions> |
|
689 |
</dependency> |
|
690 |
<dependency> |
|
691 | 737 |
<groupId>org.seleniumhq.selenium</groupId> |
692 | 738 |
<artifactId>selenium-server</artifactId> |
693 | 739 |
<version>2.35.0</version> |
selenium-test/another-test-with-selenium-builder.en.txt | ||
---|---|---|
1 |
Start Firefox (like a boss) |
|
2 |
(When you follow these steps, make sure page content is loaded before clicking, etc... Since you're a human, this is probably what you do already) |
|
3 |
|
|
4 |
- Navigate to http://localhost:9100/m2u-upass-admin/common/Login.do |
|
5 |
- Type "administrator" in "//div[2]/div[2]/form/table/tbody/tr[2]/td[3]/input", replacing any text that was already there |
|
6 |
- Type "Mss@dm1n" in "//div[2]/div[2]/form/table/tbody/tr[3]/td[3]/input", replacing any text that was already there |
|
7 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/form/table/tbody/tr[5]/td[5]/input" |
|
8 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[4]/a" |
|
9 |
- Type "test" in "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[2]/td[3]/input", replacing any text that was already there |
|
10 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div[1]/input[1]" |
|
11 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/div[2]/form/input[2]" |
|
12 |
- Select the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[3]/td[3]/select//option[2]" |
|
13 |
- Select the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[4]/td[3]/select//option[2]" |
|
14 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div[1]/input[1]" |
|
15 |
- If "m2u-test-user-1" is not on the page, scream at the coders |
|
16 |
- If "stock-user-1" is not on the page, scream at the coders |
|
17 |
- If "im2u-test-user-1" is not on the page, scream at the coders |
|
18 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/table[2]/tbody/tr[3]/td[1]/a" |
|
19 |
- If "Customer Enquiry - Details" is not on the page, scream at the coders |
|
20 |
- If "im2u-test-user-1" is not on the page, scream at the coders |
|
21 |
- If "Active" is not on the page, scream at the coders |
|
22 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div/input[1]" |
|
23 |
- If the element(s) on the page found by the css selector "tr.alt:nth-child(3)" is not present, scream at the coders |
|
24 |
- If the element(s) on the page found by the css selector "tr.alt:nth-child(4)" is present, scream at the coders |
|
25 |
|
|
26 |
You're done! Sweet. |
selenium-test/another-test-with-selenium-builder.json | ||
---|---|---|
1 |
{ |
|
2 |
"type": "script", |
|
3 |
"seleniumVersion": "2", |
|
4 |
"formatVersion": 1, |
|
5 |
"steps": [ |
|
6 |
{ |
|
7 |
"type": "get", |
|
8 |
"url": "http://localhost:9100/m2u-upass-admin/common/Login.do" |
|
9 |
}, |
|
10 |
{ |
|
11 |
"type": "switchToFrameByIndex", |
|
12 |
"index": "0" |
|
13 |
}, |
|
14 |
{ |
|
15 |
"type": "setElementText", |
|
16 |
"locator": { |
|
17 |
"type": "xpath", |
|
18 |
"value": "//div[2]/div[2]/form/table/tbody/tr[2]/td[3]/input" |
|
19 |
}, |
|
20 |
"text": "administrator" |
|
21 |
}, |
|
22 |
{ |
|
23 |
"type": "setElementText", |
|
24 |
"locator": { |
|
25 |
"type": "xpath", |
|
26 |
"value": "//div[2]/div[2]/form/table/tbody/tr[3]/td[3]/input" |
|
27 |
}, |
|
28 |
"text": "Mss@dm1n" |
|
29 |
}, |
|
30 |
{ |
|
31 |
"type": "clickElement", |
|
32 |
"locator": { |
|
33 |
"type": "xpath", |
|
34 |
"value": "//div[2]/div[2]/form/table/tbody/tr[5]/td[5]/input" |
|
35 |
} |
|
36 |
}, |
|
37 |
{ |
|
38 |
"type": "clickElement", |
|
39 |
"locator": { |
|
40 |
"type": "xpath", |
|
41 |
"value": "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[4]/a" |
|
42 |
} |
|
43 |
}, |
|
44 |
{ |
|
45 |
"type": "setElementText", |
|
46 |
"locator": { |
|
47 |
"type": "xpath", |
|
48 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[2]/td[3]/input" |
|
49 |
}, |
|
50 |
"text": "test" |
|
51 |
}, |
|
52 |
{ |
|
53 |
"type": "clickElement", |
|
54 |
"locator": { |
|
55 |
"type": "xpath", |
|
56 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div[1]/input[1]" |
|
57 |
} |
|
58 |
}, |
|
59 |
{ |
|
60 |
"type": "clickElement", |
|
61 |
"locator": { |
|
62 |
"type": "xpath", |
|
63 |
"value": "//div[2]/div[2]/div/div[2]/div/div[2]/form/input[2]" |
|
64 |
} |
|
65 |
}, |
|
66 |
{ |
|
67 |
"type": "setElementSelected", |
|
68 |
"locator": { |
|
69 |
"type": "xpath", |
|
70 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[3]/td[3]/select//option[2]" |
|
71 |
} |
|
72 |
}, |
|
73 |
{ |
|
74 |
"type": "setElementSelected", |
|
75 |
"locator": { |
|
76 |
"type": "xpath", |
|
77 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[4]/td[3]/select//option[2]" |
|
78 |
} |
|
79 |
}, |
|
80 |
{ |
|
81 |
"type": "clickElement", |
|
82 |
"locator": { |
|
83 |
"type": "xpath", |
|
84 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div[1]/input[1]" |
|
85 |
} |
|
86 |
}, |
|
87 |
{ |
|
88 |
"type": "assertTextPresent", |
|
89 |
"text": "m2u-test-user-1" |
|
90 |
}, |
|
91 |
{ |
|
92 |
"type": "assertTextPresent", |
|
93 |
"text": "stock-user-1" |
|
94 |
}, |
|
95 |
{ |
|
96 |
"type": "assertTextPresent", |
|
97 |
"text": "im2u-test-user-1" |
|
98 |
}, |
|
99 |
{ |
|
100 |
"type": "clickElement", |
|
101 |
"locator": { |
|
102 |
"type": "xpath", |
|
103 |
"value": "//div[2]/div[2]/div/div[2]/div/table[2]/tbody/tr[3]/td[1]/a" |
|
104 |
} |
|
105 |
}, |
|
106 |
{ |
|
107 |
"type": "assertTextPresent", |
|
108 |
"text": "Customer Enquiry - Details" |
|
109 |
}, |
|
110 |
{ |
|
111 |
"type": "assertTextPresent", |
|
112 |
"text": "im2u-test-user-1" |
|
113 |
}, |
|
114 |
{ |
|
115 |
"type": "assertTextPresent", |
|
116 |
"text": "Active" |
|
117 |
}, |
|
118 |
{ |
|
119 |
"type": "clickElement", |
|
120 |
"locator": { |
|
121 |
"type": "xpath", |
|
122 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div/input[1]" |
|
123 |
} |
|
124 |
}, |
|
125 |
{ |
|
126 |
"type": "assertElementPresent", |
|
127 |
"locator": { |
|
128 |
"type": "css selector", |
|
129 |
"value": "tr.alt:nth-child(3)" |
|
130 |
} |
|
131 |
}, |
|
132 |
{ |
|
133 |
"type": "assertElementPresent", |
|
134 |
"negated": true, |
|
135 |
"locator": { |
|
136 |
"type": "css selector", |
|
137 |
"value": "tr.alt:nth-child(4)" |
|
138 |
} |
|
139 |
} |
|
140 |
] |
|
141 |
} |
selenium-test/first-test-with-selenium-builder.en.txt | ||
---|---|---|
1 |
Start Firefox (like a boss) |
|
2 |
(When you follow these steps, make sure page content is loaded before clicking, etc... Since you're a human, this is probably what you do already) |
|
3 |
|
|
4 |
- Navigate to http://localhost:9100/m2u-upass-admin/common/Login.do |
|
5 |
- Type "administrator" in "//div[2]/div[2]/form/table/tbody/tr[2]/td[3]/input", replacing any text that was already there |
|
6 |
- Type "Mss@dm1n" in "//div[2]/div[2]/form/table/tbody/tr[3]/td[3]/input", replacing any text that was already there |
|
7 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/form/table/tbody/tr[5]/td[5]/input" |
|
8 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
9 |
- If "No group(s) found" is not on the page, scream at the coders |
|
10 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div[2]/input" |
|
11 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[2]/td[3]/input" |
|
12 |
- Type "Second Group Desc" in "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[3]/td[3]/textarea", replacing any text that was already there |
|
13 |
- Select the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[6]/td[2]/ul/li/input" |
|
14 |
- Type "Second Group" in "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[2]/td[3]/input", replacing any text that was already there |
|
15 |
- Type "\9" in "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[3]/td[3]/textarea" |
|
16 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
17 |
- If "Group Second Group will be created" is not on the page, scream at the coders |
|
18 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
19 |
- If "Group Second Group has been successfully created" is not on the page, scream at the coders |
|
20 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
21 |
- If "Second Group" is not on the page, scream at the coders |
|
22 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/table[2]/tbody/tr/td[1]/a" |
|
23 |
- If "Second Group Desc" is not on the page, scream at the coders |
|
24 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div/input[5]" |
|
25 |
- If "Group Second Group will be deleted." is not on the page, scream at the coders |
|
26 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
27 |
- If "Group Second Group has been successfully deleted" is not on the page, scream at the coders |
|
28 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
29 |
- If "No group(s) found" is not on the page, scream at the coders |
|
30 |
- Click the element(s) on the page identified by the xpath query "//div[1]/table/tbody/tr/td[3]/a/img" |
|
31 |
|
|
32 |
You're done! Sweet. |
selenium-test/first-test-with-selenium-builder.json | ||
---|---|---|
1 |
{ |
|
2 |
"type": "script", |
|
3 |
"seleniumVersion": "2", |
|
4 |
"formatVersion": 1, |
|
5 |
"steps": [ |
|
6 |
{ |
|
7 |
"type": "get", |
|
8 |
"url": "http://localhost:9100/m2u-upass-admin/common/Login.do" |
|
9 |
}, |
|
10 |
{ |
|
11 |
"type": "switchToFrameByIndex", |
|
12 |
"index": "0" |
|
13 |
}, |
|
14 |
{ |
|
15 |
"type": "setElementText", |
|
16 |
"locator": { |
|
17 |
"type": "xpath", |
|
18 |
"value": "//div[2]/div[2]/form/table/tbody/tr[2]/td[3]/input" |
|
19 |
}, |
|
20 |
"text": "administrator" |
|
21 |
}, |
|
22 |
{ |
|
23 |
"type": "setElementText", |
|
24 |
"locator": { |
|
25 |
"type": "xpath", |
|
26 |
"value": "//div[2]/div[2]/form/table/tbody/tr[3]/td[3]/input" |
|
27 |
}, |
|
28 |
"text": "Mss@dm1n" |
|
29 |
}, |
|
30 |
{ |
|
31 |
"type": "clickElement", |
|
32 |
"locator": { |
|
33 |
"type": "xpath", |
|
34 |
"value": "//div[2]/div[2]/form/table/tbody/tr[5]/td[5]/input" |
|
35 |
} |
|
36 |
}, |
|
37 |
{ |
|
38 |
"type": "clickElement", |
|
39 |
"locator": { |
|
40 |
"type": "xpath", |
|
41 |
"value": "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
42 |
} |
|
43 |
}, |
|
44 |
{ |
|
45 |
"type": "assertTextPresent", |
|
46 |
"text": "No group(s) found" |
|
47 |
}, |
|
48 |
{ |
|
49 |
"type": "clickElement", |
|
50 |
"locator": { |
|
51 |
"type": "xpath", |
|
52 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div[2]/input" |
|
53 |
} |
|
54 |
}, |
|
55 |
{ |
|
56 |
"type": "clickElement", |
|
57 |
"locator": { |
|
58 |
"type": "xpath", |
|
59 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[2]/td[3]/input" |
|
60 |
} |
|
61 |
}, |
|
62 |
{ |
|
63 |
"type": "setElementText", |
|
64 |
"locator": { |
|
65 |
"type": "xpath", |
|
66 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[3]/td[3]/textarea" |
|
67 |
}, |
|
68 |
"text": "Second Group Desc" |
|
69 |
}, |
|
70 |
{ |
|
71 |
"type": "setElementSelected", |
|
72 |
"locator": { |
|
73 |
"type": "xpath", |
|
74 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[6]/td[2]/ul/li/input" |
|
75 |
} |
|
76 |
}, |
|
77 |
{ |
|
78 |
"type": "setElementText", |
|
79 |
"locator": { |
|
80 |
"type": "xpath", |
|
81 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[2]/td[3]/input" |
|
82 |
}, |
|
83 |
"text": "Second Group" |
|
84 |
}, |
|
85 |
{ |
|
86 |
"type": "sendKeysToElement", |
|
87 |
"locator": { |
|
88 |
"type": "xpath", |
|
89 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[3]/td[3]/textarea" |
|
90 |
}, |
|
91 |
"text": "\\9" |
|
92 |
}, |
|
93 |
{ |
|
94 |
"type": "clickElement", |
|
95 |
"locator": { |
|
96 |
"type": "xpath", |
|
97 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
98 |
} |
|
99 |
}, |
|
100 |
{ |
|
101 |
"type": "assertTextPresent", |
|
102 |
"text": "Group Second Group will be created" |
|
103 |
}, |
|
104 |
{ |
|
105 |
"type": "clickElement", |
|
106 |
"locator": { |
|
107 |
"type": "xpath", |
|
108 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
109 |
} |
|
110 |
}, |
|
111 |
{ |
|
112 |
"type": "assertTextPresent", |
|
113 |
"text": "Group Second Group has been successfully created" |
|
114 |
}, |
|
115 |
{ |
|
116 |
"type": "clickElement", |
|
117 |
"locator": { |
|
118 |
"type": "xpath", |
|
119 |
"value": "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
120 |
} |
|
121 |
}, |
|
122 |
{ |
|
123 |
"type": "assertTextPresent", |
|
124 |
"text": "Second Group" |
|
125 |
}, |
|
126 |
{ |
|
127 |
"type": "clickElement", |
|
128 |
"locator": { |
|
129 |
"type": "xpath", |
|
130 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table[2]/tbody/tr/td[1]/a" |
|
131 |
} |
|
132 |
}, |
|
133 |
{ |
|
134 |
"type": "assertTextPresent", |
|
135 |
"text": "Second Group Desc" |
|
136 |
}, |
|
137 |
{ |
|
138 |
"type": "clickElement", |
|
139 |
"locator": { |
|
140 |
"type": "xpath", |
|
141 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div/input[5]" |
|
142 |
} |
|
143 |
}, |
|
144 |
{ |
|
145 |
"type": "assertTextPresent", |
|
146 |
"text": "Group Second Group will be deleted." |
|
147 |
}, |
|
148 |
{ |
|
149 |
"type": "clickElement", |
|
150 |
"locator": { |
|
151 |
"type": "xpath", |
|
152 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
153 |
} |
|
154 |
}, |
|
155 |
{ |
|
156 |
"type": "assertTextPresent", |
|
157 |
"text": "Group Second Group has been successfully deleted" |
|
158 |
}, |
|
159 |
{ |
|
160 |
"type": "clickElement", |
|
161 |
"locator": { |
|
162 |
"type": "xpath", |
|
163 |
"value": "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
164 |
} |
|
165 |
}, |
|
166 |
{ |
|
167 |
"type": "assertTextPresent", |
|
168 |
"text": "No group(s) found" |
|
169 |
}, |
|
170 |
{ |
|
171 |
"type": "clickElement", |
|
172 |
"locator": { |
|
173 |
"type": "xpath", |
|
174 |
"value": "//div[1]/table/tbody/tr/td[3]/a/img" |
|
175 |
} |
|
176 |
} |
|
177 |
] |
|
178 |
} |
selenium-test/first-test-with-selenium-ide.html | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
|
3 |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
4 |
<head profile="http://selenium-ide.openqa.org/profiles/test-case"> |
|
5 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
|
6 |
<link rel="selenium.base" href="http://localhost:9100/" /> |
|
7 |
<title>FirstTestCase</title> |
|
8 |
</head> |
|
9 |
<body> |
|
10 |
<table cellpadding="1" cellspacing="1" border="1"> |
|
11 |
<thead> |
|
12 |
<tr><td rowspan="1" colspan="3">FirstTestCase</td></tr> |
|
13 |
</thead><tbody> |
|
14 |
<tr> |
|
15 |
<td>open</td> |
|
16 |
<td>/m2u-upass-admin/common/Login.do</td> |
|
17 |
<td></td> |
|
18 |
</tr> |
|
19 |
<tr> |
|
20 |
<td>type</td> |
|
21 |
<td>name=userId</td> |
|
22 |
<td>administrator</td> |
|
23 |
</tr> |
|
24 |
<tr> |
|
25 |
<td>type</td> |
|
26 |
<td>name=password</td> |
|
27 |
<td>Mss@dm1n</td> |
|
28 |
</tr> |
|
29 |
<tr> |
|
30 |
<td>clickAndWait</td> |
|
31 |
<td>name=action</td> |
|
32 |
<td></td> |
|
33 |
</tr> |
|
34 |
<tr> |
|
35 |
<td>clickAndWait</td> |
|
36 |
<td>link=Admin Group Maintenance</td> |
|
37 |
<td></td> |
|
38 |
</tr> |
|
39 |
<tr> |
|
40 |
<td>verifyText</td> |
|
41 |
<td>css=table.tabularForm > tbody > tr > td</td> |
|
42 |
<td>No group(s) found</td> |
|
43 |
</tr> |
|
44 |
<tr> |
|
45 |
<td>clickAndWait</td> |
|
46 |
<td>name=action</td> |
|
47 |
<td></td> |
|
48 |
</tr> |
|
49 |
<tr> |
|
50 |
<td>type</td> |
|
51 |
<td>name=groupName</td> |
|
52 |
<td>First Group</td> |
|
53 |
</tr> |
|
54 |
<tr> |
|
55 |
<td>type</td> |
|
56 |
<td>name=groupDescription</td> |
|
57 |
<td>First Group Desc</td> |
|
58 |
</tr> |
|
59 |
<tr> |
|
60 |
<td>click</td> |
|
61 |
<td>name=selectedAccesses</td> |
|
62 |
<td></td> |
|
63 |
</tr> |
|
64 |
<tr> |
|
65 |
<td>clickAndWait</td> |
|
66 |
<td>xpath=(//input[@name='action'])[2]</td> |
|
67 |
<td></td> |
|
68 |
</tr> |
|
69 |
<tr> |
|
70 |
<td>clickAndWait</td> |
|
71 |
<td>xpath=(//input[@name='action'])[2]</td> |
|
72 |
<td></td> |
|
73 |
</tr> |
|
74 |
<tr> |
|
75 |
<td>verifyText</td> |
|
76 |
<td>css=td.success > strong</td> |
|
77 |
<td>Successful</td> |
|
78 |
</tr> |
|
79 |
<tr> |
|
80 |
<td>verifyText</td> |
|
81 |
<td>//tr[2]/td[2]/strong</td> |
|
82 |
<td>Group First Group has been successfully created</td> |
|
83 |
</tr> |
|
84 |
<tr> |
|
85 |
<td>clickAndWait</td> |
|
86 |
<td>name=action</td> |
|
87 |
<td></td> |
|
88 |
</tr> |
|
89 |
<tr> |
|
90 |
<td>clickAndWait</td> |
|
91 |
<td>css=.alt > td:nth-child(1) > a:nth-child(1)</td> |
|
92 |
<td></td> |
|
93 |
</tr> |
|
94 |
<tr> |
|
95 |
<td>clickAndWait</td> |
|
96 |
<td>xpath=(//input[@name='action'])[2]</td> |
|
97 |
<td></td> |
|
98 |
</tr> |
|
99 |
<tr> |
|
100 |
<td>verifyValue</td> |
|
101 |
<td>name=editableArray</td> |
|
102 |
<td>on</td> |
|
103 |
</tr> |
|
104 |
<tr> |
|
105 |
<td>verifyValue</td> |
|
106 |
<td>document.ibssGroupForm.editableArray[1]</td> |
|
107 |
<td>on</td> |
|
108 |
</tr> |
|
109 |
<tr> |
|
110 |
<td>verifyValue</td> |
|
111 |
<td>document.ibssGroupForm.editableArray[2]</td> |
|
112 |
<td>on</td> |
|
113 |
</tr> |
|
114 |
<tr> |
|
115 |
<td>verifyValue</td> |
|
116 |
<td>document.ibssGroupForm.editableArray[3]</td> |
|
117 |
<td>on</td> |
|
118 |
</tr> |
|
119 |
<tr> |
|
120 |
<td>verifyValue</td> |
|
121 |
<td>document.ibssGroupForm.editableArray[4]</td> |
|
122 |
<td>on</td> |
|
123 |
</tr> |
|
124 |
<tr> |
|
125 |
<td>verifyValue</td> |
|
126 |
<td>document.ibssGroupForm.editableArray[5]</td> |
|
127 |
<td>on</td> |
|
128 |
</tr> |
|
129 |
<tr> |
|
130 |
<td>verifyValue</td> |
|
131 |
<td>document.ibssGroupForm.editableArray[6]</td> |
|
132 |
<td>on</td> |
|
133 |
</tr> |
|
134 |
<tr> |
|
135 |
<td>verifyValue</td> |
|
136 |
<td>css=li.lastLine > input[name="editableArray"]</td> |
|
137 |
<td>on</td> |
|
138 |
</tr> |
|
139 |
<tr> |
|
140 |
<td>clickAndWait</td> |
|
141 |
<td>name=action</td> |
|
142 |
<td></td> |
|
143 |
</tr> |
|
144 |
<tr> |
|
145 |
<td>clickAndWait</td> |
|
146 |
<td>name=action</td> |
|
147 |
<td></td> |
|
148 |
</tr> |
|
149 |
<tr> |
|
150 |
<td>clickAndWait</td> |
|
151 |
<td>link=Admin Group Maintenance</td> |
|
152 |
<td></td> |
|
153 |
</tr> |
|
154 |
<tr> |
|
155 |
<td>clickAndWait</td> |
|
156 |
<td>css=tr.alt > td > a</td> |
|
157 |
<td></td> |
|
158 |
</tr> |
|
159 |
<tr> |
|
160 |
<td>clickAndWait</td> |
|
161 |
<td>xpath=(//input[@name='action'])[3]</td> |
|
162 |
<td></td> |
|
163 |
</tr> |
|
164 |
<tr> |
|
165 |
<td>clickAndWait</td> |
|
166 |
<td>xpath=(//input[@name='action'])[2]</td> |
|
167 |
<td></td> |
|
168 |
</tr> |
|
169 |
<tr> |
|
170 |
<td>verifyText</td> |
|
171 |
<td>css=td.success > strong</td> |
|
172 |
<td>Successful</td> |
|
173 |
</tr> |
|
174 |
<tr> |
|
175 |
<td>verifyText</td> |
|
176 |
<td>//tr[2]/td[2]/strong</td> |
|
177 |
<td>Group First Group has been successfully deleted</td> |
|
178 |
</tr> |
|
179 |
<tr> |
|
180 |
<td>clickAndWait</td> |
|
181 |
<td>link=Admin Group Maintenance</td> |
|
182 |
<td></td> |
|
183 |
</tr> |
|
184 |
<tr> |
|
185 |
<td>verifyText</td> |
|
186 |
<td>css=table.tabularForm > tbody > tr > td</td> |
|
187 |
<td>No group(s) found</td> |
|
188 |
</tr> |
|
189 |
<tr> |
|
190 |
<td>clickAndWait</td> |
|
191 |
<td>//td[3]/a/img</td> |
|
192 |
<td></td> |
|
193 |
</tr> |
|
194 |
</tbody></table> |
|
195 |
</body> |
|
196 |
</html> |
selenium-test/my-test-case-with-selenium-builder.en.txt | ||
---|---|---|
1 |
Start Firefox (like a boss) |
|
2 |
(When you follow these steps, make sure page content is loaded before clicking, etc... Since you're a human, this is probably what you do already) |
|
3 |
|
|
4 |
- Navigate to http://localhost:9100/m2u-upass-admin/common/Login.do |
|
5 |
- Type "administrator" in "//div[2]/div[2]/form/table/tbody/tr[2]/td[3]/input", replacing any text that was already there |
|
6 |
- Type "Mss@dm1n" in "//div[2]/div[2]/form/table/tbody/tr[3]/td[3]/input", replacing any text that was already there |
|
7 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/form/table/tbody/tr[5]/td[5]/input" |
|
8 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
9 |
- If "No group(s) found" is not on the page, scream at the coders |
|
10 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div[2]/input" |
|
11 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[2]/td[3]/input" |
|
12 |
- Type "Second Group Desc" in "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[3]/td[3]/textarea", replacing any text that was already there |
|
13 |
- Select the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[6]/td[2]/ul/li/input" |
|
14 |
- Type "Second Group" in "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[2]/td[3]/input", replacing any text that was already there |
|
15 |
- Type "\9" in "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[3]/td[3]/textarea" |
|
16 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
17 |
- If "Group Second Group will be created" is not on the page, scream at the coders |
|
18 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
19 |
- If "Group Second Group has been successfully created" is not on the page, scream at the coders |
|
20 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
21 |
- If "Second Group" is not on the page, scream at the coders |
|
22 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/table[2]/tbody/tr/td[1]/a" |
|
23 |
- If "Second Group Desc" is not on the page, scream at the coders |
|
24 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div/input[5]" |
|
25 |
- If "Group Second Group will be deleted." is not on the page, scream at the coders |
|
26 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
27 |
- If "Group Second Group has been successfully deleted" is not on the page, scream at the coders |
|
28 |
- Click the element(s) on the page identified by the xpath query "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
29 |
- If "No group(s) found" is not on the page, scream at the coders |
|
30 |
- Click the element(s) on the page identified by the xpath query "//div[1]/table/tbody/tr/td[3]/a/img" |
|
31 |
|
|
32 |
You're done! Sweet. |
selenium-test/my-test-case-with-selenium-builder.json | ||
---|---|---|
1 |
{ |
|
2 |
"type": "script", |
|
3 |
"seleniumVersion": "2", |
|
4 |
"formatVersion": 1, |
|
5 |
"steps": [ |
|
6 |
{ |
|
7 |
"type": "get", |
|
8 |
"url": "http://localhost:9100/m2u-upass-admin/common/Login.do" |
|
9 |
}, |
|
10 |
{ |
|
11 |
"type": "switchToFrameByIndex", |
|
12 |
"index": "0" |
|
13 |
}, |
|
14 |
{ |
|
15 |
"type": "setElementText", |
|
16 |
"locator": { |
|
17 |
"type": "xpath", |
|
18 |
"value": "//div[2]/div[2]/form/table/tbody/tr[2]/td[3]/input" |
|
19 |
}, |
|
20 |
"text": "administrator" |
|
21 |
}, |
|
22 |
{ |
|
23 |
"type": "setElementText", |
|
24 |
"locator": { |
|
25 |
"type": "xpath", |
|
26 |
"value": "//div[2]/div[2]/form/table/tbody/tr[3]/td[3]/input" |
|
27 |
}, |
|
28 |
"text": "Mss@dm1n" |
|
29 |
}, |
|
30 |
{ |
|
31 |
"type": "clickElement", |
|
32 |
"locator": { |
|
33 |
"type": "xpath", |
|
34 |
"value": "//div[2]/div[2]/form/table/tbody/tr[5]/td[5]/input" |
|
35 |
} |
|
36 |
}, |
|
37 |
{ |
|
38 |
"type": "clickElement", |
|
39 |
"locator": { |
|
40 |
"type": "xpath", |
|
41 |
"value": "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
42 |
} |
|
43 |
}, |
|
44 |
{ |
|
45 |
"type": "assertTextPresent", |
|
46 |
"text": "No group(s) found" |
|
47 |
}, |
|
48 |
{ |
|
49 |
"type": "clickElement", |
|
50 |
"locator": { |
|
51 |
"type": "xpath", |
|
52 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div[2]/input" |
|
53 |
} |
|
54 |
}, |
|
55 |
{ |
|
56 |
"type": "clickElement", |
|
57 |
"locator": { |
|
58 |
"type": "xpath", |
|
59 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[2]/td[3]/input" |
|
60 |
} |
|
61 |
}, |
|
62 |
{ |
|
63 |
"type": "setElementText", |
|
64 |
"locator": { |
|
65 |
"type": "xpath", |
|
66 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[3]/td[3]/textarea" |
|
67 |
}, |
|
68 |
"text": "Second Group Desc" |
|
69 |
}, |
|
70 |
{ |
|
71 |
"type": "setElementSelected", |
|
72 |
"locator": { |
|
73 |
"type": "xpath", |
|
74 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[6]/td[2]/ul/li/input" |
|
75 |
} |
|
76 |
}, |
|
77 |
{ |
|
78 |
"type": "setElementText", |
|
79 |
"locator": { |
|
80 |
"type": "xpath", |
|
81 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[2]/td[3]/input" |
|
82 |
}, |
|
83 |
"text": "Second Group" |
|
84 |
}, |
|
85 |
{ |
|
86 |
"type": "sendKeysToElement", |
|
87 |
"locator": { |
|
88 |
"type": "xpath", |
|
89 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table/tbody/tr[3]/td[3]/textarea" |
|
90 |
}, |
|
91 |
"text": "\\9" |
|
92 |
}, |
|
93 |
{ |
|
94 |
"type": "clickElement", |
|
95 |
"locator": { |
|
96 |
"type": "xpath", |
|
97 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
98 |
} |
|
99 |
}, |
|
100 |
{ |
|
101 |
"type": "assertTextPresent", |
|
102 |
"text": "Group Second Group will be created" |
|
103 |
}, |
|
104 |
{ |
|
105 |
"type": "clickElement", |
|
106 |
"locator": { |
|
107 |
"type": "xpath", |
|
108 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
109 |
} |
|
110 |
}, |
|
111 |
{ |
|
112 |
"type": "assertTextPresent", |
|
113 |
"text": "Group Second Group has been successfully created" |
|
114 |
}, |
|
115 |
{ |
|
116 |
"type": "clickElement", |
|
117 |
"locator": { |
|
118 |
"type": "xpath", |
|
119 |
"value": "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
120 |
} |
|
121 |
}, |
|
122 |
{ |
|
123 |
"type": "assertTextPresent", |
|
124 |
"text": "Second Group" |
|
125 |
}, |
|
126 |
{ |
|
127 |
"type": "clickElement", |
|
128 |
"locator": { |
|
129 |
"type": "xpath", |
|
130 |
"value": "//div[2]/div[2]/div/div[2]/div/form/table[2]/tbody/tr/td[1]/a" |
|
131 |
} |
|
132 |
}, |
|
133 |
{ |
|
134 |
"type": "assertTextPresent", |
|
135 |
"text": "Second Group Desc" |
|
136 |
}, |
|
137 |
{ |
|
138 |
"type": "clickElement", |
|
139 |
"locator": { |
|
140 |
"type": "xpath", |
|
141 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div/input[5]" |
|
142 |
} |
|
143 |
}, |
|
144 |
{ |
|
145 |
"type": "assertTextPresent", |
|
146 |
"text": "Group Second Group will be deleted." |
|
147 |
}, |
|
148 |
{ |
|
149 |
"type": "clickElement", |
|
150 |
"locator": { |
|
151 |
"type": "xpath", |
|
152 |
"value": "//div[2]/div[2]/div/div[2]/div/form/div/input[2]" |
|
153 |
} |
|
154 |
}, |
|
155 |
{ |
|
156 |
"type": "assertTextPresent", |
|
157 |
"text": "Group Second Group has been successfully deleted" |
|
158 |
}, |
|
159 |
{ |
|
160 |
"type": "clickElement", |
|
161 |
"locator": { |
|
162 |
"type": "xpath", |
|
163 |
"value": "//div[2]/div[2]/div/div[1]/div/ul/li/ul/li[1]/a" |
|
164 |
} |
|
165 |
}, |
|
166 |
{ |
|
167 |
"type": "assertTextPresent", |
|
168 |
"text": "No group(s) found" |
|
169 |
}, |
|
170 |
{ |
|
171 |
"type": "clickElement", |
|
172 |
"locator": { |
|
173 |
"type": "xpath", |
|
174 |
"value": "//div[1]/table/tbody/tr/td[3]/a/img" |
|
175 |
} |
|
176 |
} |
|
177 |
] |
|
178 |
} |
selenium-test/my-test-case-with-selenium-ide.html | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
|
3 |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
4 |
<head profile="http://selenium-ide.openqa.org/profiles/test-case"> |
|
5 |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
|
6 |
<link rel="selenium.base" href="http://localhost:9100/" /> |
|
7 |
<title>FirstTestCase</title> |
|
8 |
</head> |
|
9 |
<body> |
|
10 |
<table cellpadding="1" cellspacing="1" border="1"> |
|
11 |
<thead> |
|
12 |
<tr><td rowspan="1" colspan="3">FirstTestCase</td></tr> |
|
13 |
</thead><tbody> |
|
14 |
<tr> |
|
15 |
<td>open</td> |
|
16 |
<td>/m2u-upass-admin/common/Login.do</td> |
|
17 |
<td></td> |
|
18 |
</tr> |
|
19 |
<tr> |
|
20 |
<td>type</td> |
|
21 |
<td>name=userId</td> |
|
22 |
<td>administrator</td> |
|
23 |
</tr> |
|
24 |
<tr> |
|
25 |
<td>type</td> |
|
26 |
<td>name=password</td> |
|
27 |
<td>Mss@dm1n</td> |
|
28 |
</tr> |
|
29 |
<tr> |
|
30 |
<td>clickAndWait</td> |
|
31 |
<td>name=action</td> |
|
32 |
<td></td> |
|
33 |
</tr> |
|
34 |
<tr> |
|
35 |
<td>clickAndWait</td> |
|
36 |
<td>link=Admin Group Maintenance</td> |
|
37 |
<td></td> |
|
38 |
</tr> |
|
39 |
<tr> |
|
40 |
<td>verifyText</td> |
|
41 |
<td>css=table.tabularForm > tbody > tr > td</td> |
|
42 |
<td>No group(s) found</td> |
|
43 |
</tr> |
|
44 |
<tr> |
|
45 |
<td>clickAndWait</td> |
|
46 |
<td>name=action</td> |
|
47 |
<td></td> |
|
48 |
</tr> |
|
49 |
<tr> |
|
50 |
<td>type</td> |
|
51 |
<td>name=groupName</td> |
|
52 |
<td>First Group</td> |
|
53 |
</tr> |
|
54 |
<tr> |
|
55 |
<td>type</td> |
|
56 |
<td>name=groupDescription</td> |
|
57 |
<td>First Group Desc</td> |
|
58 |
</tr> |
|
59 |
<tr> |
|
60 |
<td>click</td> |
|
61 |
<td>name=selectedAccesses</td> |
|
62 |
<td></td> |
|
63 |
</tr> |
|
64 |
<tr> |
|
65 |
<td>clickAndWait</td> |
|
66 |
<td>xpath=(//input[@name='action'])[2]</td> |
|
67 |
<td></td> |
|
68 |
</tr> |
|
69 |
<tr> |
|
70 |
<td>clickAndWait</td> |
|
71 |
<td>xpath=(//input[@name='action'])[2]</td> |
|
72 |
<td></td> |
|
73 |
</tr> |
|
74 |
<tr> |
|
75 |
<td>verifyText</td> |
|
76 |
<td>css=td.success > strong</td> |
|
77 |
<td>Successful</td> |
|
78 |
</tr> |
|
79 |
<tr> |
|
80 |
<td>verifyText</td> |
|
81 |
<td>//tr[2]/td[2]/strong</td> |
|
82 |
<td>Group First Group has been successfully created</td> |
|
83 |
</tr> |
|
84 |
<tr> |
|
85 |
<td>clickAndWait</td> |
|
86 |
<td>name=action</td> |
|
87 |
<td></td> |
|
88 |
</tr> |
|
89 |
<tr> |
|
90 |
<td>clickAndWait</td> |
|
91 |
<td>css=.alt > td:nth-child(1) > a:nth-child(1)</td> |
|
92 |
<td></td> |
|
93 |
</tr> |
|
94 |
<tr> |
|
95 |
<td>clickAndWait</td> |
|
96 |
<td>xpath=(//input[@name='action'])[2]</td> |
|
97 |
<td></td> |
|
98 |
</tr> |
|
99 |
<tr> |
|
100 |
<td>verifyValue</td> |
|
101 |
<td>name=editableArray</td> |
|
102 |
<td>on</td> |
|
103 |
</tr> |
|
104 |
<tr> |
|
105 |
<td>verifyValue</td> |
|
106 |
<td>document.ibssGroupForm.editableArray[1]</td> |
|
107 |
<td>on</td> |
|
108 |
</tr> |
|
109 |
<tr> |
|
110 |
<td>verifyValue</td> |
|
111 |
<td>document.ibssGroupForm.editableArray[2]</td> |
|
112 |
<td>on</td> |
|
113 |
</tr> |
|
114 |
<tr> |
|
115 |
<td>verifyValue</td> |
|
116 |
<td>document.ibssGroupForm.editableArray[3]</td> |
|
117 |
<td>on</td> |
|
118 |
</tr> |
|
119 |
<tr> |
|
120 |
<td>verifyValue</td> |
|
121 |
<td>document.ibssGroupForm.editableArray[4]</td> |
|
122 |
<td>on</td> |
|
123 |
</tr> |
|
124 |
<tr> |
|
125 |
<td>verifyValue</td> |
|
126 |
<td>document.ibssGroupForm.editableArray[5]</td> |
|
127 |
<td>on</td> |
|
128 |
</tr> |
|
129 |
<tr> |
|
130 |
<td>verifyValue</td> |
|
131 |
<td>document.ibssGroupForm.editableArray[6]</td> |
|
132 |
<td>on</td> |
|
133 |
</tr> |
|
134 |
<tr> |
|
135 |
<td>verifyValue</td> |
|
136 |
<td>css=li.lastLine > input[name="editableArray"]</td> |
|
137 |
<td>on</td> |
|
138 |
</tr> |
|
139 |
<tr> |
|
140 |
<td>clickAndWait</td> |
|
141 |
<td>name=action</td> |
|
142 |
<td></td> |
|
143 |
</tr> |
|
144 |
<tr> |
|
145 |
<td>clickAndWait</td> |
|
146 |
<td>name=action</td> |
|
147 |
<td></td> |
|
148 |
</tr> |
|
149 |
<tr> |
|
150 |
<td>clickAndWait</td> |
|
151 |
<td>link=Admin Group Maintenance</td> |
|
152 |
<td></td> |
|
153 |
</tr> |
|
154 |
<tr> |
|
155 |
<td>clickAndWait</td> |
|
156 |
<td>css=tr.alt > td > a</td> |
|
157 |
<td></td> |
|
158 |
</tr> |
|
159 |
<tr> |
|
160 |
<td>clickAndWait</td> |
|
161 |
<td>xpath=(//input[@name='action'])[3]</td> |
|
162 |
<td></td> |
|
163 |
</tr> |
|
164 |
<tr> |
|
165 |
<td>clickAndWait</td> |
|
166 |
<td>xpath=(//input[@name='action'])[2]</td> |
|
167 |
<td></td> |
|
168 |
</tr> |
|
169 |
<tr> |
|
170 |
<td>verifyText</td> |
|
171 |
<td>css=td.success > strong</td> |
|
172 |
<td>Successful</td> |
|
173 |
</tr> |
|
174 |
<tr> |
|
175 |
<td>verifyText</td> |
|
176 |
<td>//tr[2]/td[2]/strong</td> |
|
177 |
<td>Group First Group has been successfully deleted</td> |
|
178 |
</tr> |
|
179 |
<tr> |
|
180 |
<td>clickAndWait</td> |
|
181 |
<td>link=Admin Group Maintenance</td> |
|
182 |
<td></td> |
|
183 |
</tr> |
|
184 |
<tr> |
|
185 |
<td>verifyText</td> |
|
186 |
<td>css=table.tabularForm > tbody > tr > td</td> |
|
187 |
<td>No group(s) found</td> |
|
188 |
</tr> |
|
189 |
<tr> |
|
190 |
<td>clickAndWait</td> |
|
191 |
<td>//td[3]/a/img</td> |
|
192 |
<td></td> |
|
193 |
</tr> |
|
194 |
</tbody></table> |
|
195 |
</body> |
|
196 |
</html> |
test/selenium/AllIntegrationTests.java | ||
---|---|---|
1 |
package selenium; |
|
2 |
|
|
3 |
import org.junit.runner.RunWith; |
|
4 |
import org.junit.runners.Suite; |
|
5 |
import org.junit.runners.Suite.SuiteClasses; |
|
6 |
|
|
7 |
@RunWith(Suite.class) |
|
8 |
@SuiteClasses({ |
|
9 |
/* MySeleniumIdeITCase.class, */ |
|
10 |
FirstTestWithSeleniumBuilder.class, |
|
11 |
AnotherTestWithSeleniumBuilder.class }) |
|
12 |
// |
|
13 |
public class AllIntegrationTests { |
|
14 |
|
|
15 |
} |
test/selenium/AllTests.java | ||
---|---|---|
1 |
package selenium; |
|
2 |
|
|
3 |
import org.junit.runner.RunWith; |
|
4 |
import org.junit.runners.Suite; |
|
5 |
import org.junit.runners.Suite.SuiteClasses; |
|
6 |
|
|
7 |
@RunWith(Suite.class) |
|
8 |
@SuiteClasses({ |
|
9 |
/* MyTestCaseWithSeleniumIde.class, */ |
|
10 |
MyTestCaseWithSeleniumBuilder.class, |
|
11 |
My2ndTestCaseWithSeleniumBuilder.class }) |
|
12 |
// |
|
13 |
public class AllTests { |
|
14 |
|
Also available in: Unified diff