
Let us see how Selenium Capsules can help to read the content of it.

The Table class only has two methods now, getHeader and getRows, Stream is a new collection type appears in Java 8.
And here is the test to read the table,

You can see, the table supports type, it will return the type in a Stream. For this table, we define a simple domain class called Person,
class Person {
private final String firstName;
private final String lastName;
private final int points;
Person(String firstName, String lastName, int points) {
this.firstName = firstName;
this.lastName = lastName;
this.points = points;
}
@Override
public String toString() {
return firstName + "|" + lastName + "|" + points;
}
}
When we construct the Table, we need to pass a Locator to locate the table and a Mapper to map the contents in a row to the domain class,
Locator<AbstractPage, Element> locator = Locators.<AbstractPage>element(MAIN).and(element(TABLE));
Locator<Stream<Element>, Person> mapper = (stream) -> {
Iterator<String> iterator = stream.map(TEXT).iterator();
return new Person(iterator.next(), iterator.next(), PARSE_INT.locate(iterator.next()));
};
The mapper will read all the TD tags in the TR tags and call the new Person for each TR tag.
<tr> <td>Jill</td> <td>Smith</td> <td>50</td> </tr>
return new Person("Jill", "Smith", 50);
it prints this when you run it
Firstname|Lastname|Points| Jill|Smith|50 Eve|Jackson|94 John|Doe|80 Adam|Johnson|67The following code is called Method Reference in Java 8.
table.getRows().forEach(
System.out::println
);
It has good table manners.
No comments:
Post a Comment