Project

General

Profile

Download (2.03 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2021 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.dataportal.elements;
10

    
11
import java.util.ArrayList;
12
import java.util.List;
13
import java.util.stream.Collectors;
14

    
15
import org.openqa.selenium.By;
16
import org.openqa.selenium.WebElement;
17

    
18
import eu.etaxonomy.dataportal.selenium.XPathTools;
19

    
20
/**
21
 * @author a.kohlbecker
22
 * @since Mar 18, 2021
23
 */
24
public class DerivedUnitTreeNode extends BaseElement {
25

    
26
    private List<DerivedUnitTreeNode> subNodes = new ArrayList<>();
27

    
28
    public DerivedUnitTreeNode(WebElement element) {
29
        super(element);
30
        // > .item-list > ul.derived-unit-sub-tree > li.derived-unit-item
31
        String xpathStr =
32
                "./div" + XPathTools.classAttrContains("item-list")
33
                + "/ul" + XPathTools.classAttrContains("derived-unit-item")
34
                + "/li" + XPathTools.classAttrContains("derived-unit-item");
35
        subNodes = element.findElements(By.xpath(xpathStr))
36
        .stream()
37
       // .peek(el -> System.out.println("#####> " + element.getText() + " >>> " + el.getText()))
38
        .map(el -> new DerivedUnitTreeNode(el))
39
        .collect(Collectors.toList());
40
    }
41

    
42
    public BaseElement getHeader() {
43
        return BaseElement.from(getElement().findElement(By.cssSelector(".unit-header")));
44
    }
45

    
46
    public BaseElement getContent() {
47
        return BaseElement.from(getElement().findElement(By.cssSelector(".unit-content")));
48
    }
49

    
50
    public DetailsTable getDetailsTable(String tableClassAttribute) {
51
        return DetailsTable.from(getContent().getElement().findElement(By.cssSelector("table." + tableClassAttribute)));
52
    }
53

    
54
    public String getDerivationEvent() {
55
        return getContent().getElement().findElement(By.cssSelector("div.derivation-event")).getText();
56
    }
57

    
58

    
59
    public List<DerivedUnitTreeNode> getSubNodes() {
60
        return subNodes;
61
    }
62

    
63

    
64
}
(5-5/27)