Code Duplication    Length = 97-98 lines in 2 locations

src/WebinoDev/Test/Selenium/ElementsTrait.php 1 location

@@ 17-114 (lines=98) @@
14
/**
15
 * WebDriver tests elements helper methods trait
16
 */
17
trait ElementsTrait
18
{
19
    /**
20
     * Returns WebDriver session
21
     *
22
     * @return \PHPWebDriver_WebDriverSession
23
     */
24
    abstract protected function getSession();
25
26
    /**
27
     * Returns page elements by class name
28
     *
29
     * @param string $className
30
     * @return \PHPWebDriver_WebDriverElement[]|WebDriver\ElementInterface[]
31
     */
32
    protected function elementsByClassName($className)
33
    {
34
        return $this->getSession()->elements(By::CLASS_NAME, $className);
35
    }
36
37
    /**
38
     * Returns page elements by CSS selector
39
     *
40
     * @param string $selector
41
     * @return \PHPWebDriver_WebDriverElement[]|WebDriver\ElementInterface[]
42
     */
43
    protected function elementsByCssSelector($selector)
44
    {
45
        return $this->getSession()->elements(By::CSS_SELECTOR, $selector);
46
    }
47
48
    /**
49
     * Returns page elements by ID
50
     *
51
     * @param string $id
52
     * @return \PHPWebDriver_WebDriverElement[]|WebDriver\ElementInterface[]
53
     */
54
    protected function elementsById($id)
55
    {
56
        return $this->getSession()->elements(By::ID, $id);
57
    }
58
59
    /**
60
     * Returns page elements by link text
61
     *
62
     * @param string $text
63
     * @return \PHPWebDriver_WebDriverElement[]|WebDriver\ElementInterface[]
64
     */
65
    protected function elementsByLinkText($text)
66
    {
67
        return $this->getSession()->elements(By::LINK_TEXT, $text);
68
    }
69
70
    /**
71
     * Returns page elements by its name
72
     *
73
     * @param string $name
74
     * @return \PHPWebDriver_WebDriverElement[]|WebDriver\ElementInterface[]
75
     */
76
    protected function elementsByName($name)
77
    {
78
        return $this->getSession()->elements(By::NAME, $name);
79
    }
80
81
    /**
82
     * Returns page elements by its name
83
     *
84
     * @param string $name
85
     * @return \PHPWebDriver_WebDriverElement[]|WebDriver\ElementInterface[]
86
     */
87
    protected function elementsByPartialLinkText($name)
88
    {
89
        return $this->getSession()->elements(By::PARTIAL_LINK_TEXT, $name);
90
    }
91
92
    /**
93
     * Returns page elements by its tag name
94
     *
95
     * @param string $tag
96
     * @return \PHPWebDriver_WebDriverElement[]|WebDriver\ElementInterface[]
97
     */
98
    protected function elementsByTagName($tag)
99
    {
100
        return $this->getSession()->elements(By::TAG_NAME, $tag);
101
    }
102
103
    /**
104
     * Returns page elements by XPath
105
     *
106
     * @param string $xpath
107
     * @return \PHPWebDriver_WebDriverElement[]|WebDriver\ElementInterface[]
108
     */
109
    protected function elementsByXpath($xpath)
110
    {
111
        return $this->getSession()->elements(By::XPATH, $xpath);
112
    }
113
}
114

src/WebinoDev/Test/Selenium/ElementTrait.php 1 location

@@ 17-113 (lines=97) @@
14
/**
15
 * WebDriver tests element helper methods trait
16
 */
17
trait ElementTrait
18
{
19
    /**
20
     * Returns WebDriver session
21
     *
22
     * @return \PHPWebDriver_WebDriverSession
23
     */
24
    abstract protected function getSession();
25
26
    /**
27
     * Returns page element by class name
28
     *
29
     * @param string $className
30
     * @return \PHPWebDriver_WebDriverElement|WebDriver\ElementInterface
31
     */
32
    protected function elementByClassName($className)
33
    {
34
        return $this->getSession()->element(By::CLASS_NAME, $className);
35
    }
36
37
    /**
38
     * Returns page element by CSS selector
39
     *
40
     * @param string $selector
41
     * @return \PHPWebDriver_WebDriverElement|WebDriver\ElementInterface
42
     */
43
    protected function elementByCssSelector($selector)
44
    {
45
        return $this->getSession()->element(By::CSS_SELECTOR, $selector);
46
    }
47
48
    /**
49
     * Returns page element by ID
50
     *
51
     * @param string $id
52
     * @return \PHPWebDriver_WebDriverElement|WebDriver\ElementInterface
53
     */
54
    protected function elementById($id)
55
    {
56
        return $this->getSession()->element(By::ID, $id);
57
    }
58
59
    /**
60
     * Returns page element by link text
61
     *
62
     * @param string $text
63
     * @return \PHPWebDriver_WebDriverElement|WebDriver\ElementInterface
64
     */
65
    protected function elementByLinkText($text)
66
    {
67
        return $this->getSession()->element(By::LINK_TEXT, $text);
68
    }
69
70
    /**
71
     * Returns page element by its name
72
     *
73
     * @param string $name
74
     * @return \PHPWebDriver_WebDriverElement|WebDriver\ElementInterface
75
     */
76
    protected function elementByName($name)
77
    {
78
        return $this->getSession()->element(By::NAME, $name);
79
    }
80
81
    /**
82
     * Returns page element by partial link text
83
     *
84
     * @param string $name
85
     * @return \PHPWebDriver_WebDriverElement|WebDriver\ElementInterface
86
     */
87
    protected function elementByPartialLinkText($name)
88
    {
89
        return $this->getSession()->element(By::PARTIAL_LINK_TEXT, $name);
90
    }
91
92
    /**
93
     * Returns page element by its tag name
94
     *
95
     * @param string $tag
96
     * @return \PHPWebDriver_WebDriverElement|WebDriver\ElementInterface
97
     */
98
    protected function elementByTagName($tag)
99
    {
100
        return $this->getSession()->element(By::TAG_NAME, $tag);
101
    }
102
103
    /**
104
     * Returns page element by XPath
105
     *
106
     * @param string $xpath
107
     * @return \PHPWebDriver_WebDriverElement|WebDriver\ElementInterface
108
     */
109
    protected function elementByXpath($xpath)
110
    {
111
        return $this->getSession()->element(By::XPATH, $xpath);
112
    }
113
}
114