1+ [System.Reflection.Assembly ]::LoadFrom(" $PSScriptRoot \WebDriver.dll" )
2+ [System.Reflection.Assembly ]::LoadFrom(" $PSScriptRoot \WebDriver.Support.dll" )
3+
4+ <#
5+ . SYNOPSIS
6+ Starts a Selenium Chrome driver
7+
8+ . DESCRIPTION
9+ Starts a Selenium Chrome driver
10+
11+ . EXAMPLE
12+ Start-SeChrome
13+ #>
14+ function Start-SeChrome {
15+ New-Object - TypeName " OpenQA.Selenium.Chrome.ChromeDriver"
16+ }
17+
18+ <#
19+ . SYNOPSIS
20+ Starts a Selenium Firefox driver
21+
22+ . DESCRIPTION
23+ Starts a Selenium Firefox driver
24+
25+ . EXAMPLE
26+ Start-SeFirefox
27+ #>
28+ function Start-SeFirefox {
29+ New-Object - TypeName " OpenQA.Selenium.Firefox.FirefoxDriver"
30+ }
31+
32+ <#
33+ . SYNOPSIS
34+ Stops a Selenium driver.
35+
36+ . DESCRIPTION
37+ Stops a Selenium driver.
38+
39+ . PARAMETER Driver
40+ The driver to stop.
41+ #>
42+ function Stop-SeDriver {
43+ param ($Driver )
44+
45+ $Driver.Dispose ()
46+ }
47+
48+ <#
49+ . SYNOPSIS
50+ Navigates to a url.
51+
52+ . DESCRIPTION
53+ Navigates to a url.
54+
55+ . PARAMETER Driver
56+ The driver to navigate with. See Start-SeChrome and Start-SeFirefox.
57+
58+ . PARAMETER Url
59+ The URL to navigate to.
60+
61+ . EXAMPLE
62+ Enter-SeUrl -Url https://www.google.com -Driver (Start-SeChrome)
63+ #>
64+
65+ function Enter-SeUrl {
66+ param ($Driver , $Url )
67+
68+ $Driver.Navigate ().GoToUrl($Url )
69+ }
70+
71+ <#
72+ . SYNOPSIS
73+ Find an element in the currently loaded page.
74+
75+ . DESCRIPTION
76+ Find an element in the currently loaded page.
77+
78+ . PARAMETER Driver
79+ The driver to navigate with. See Start-SeChrome and Start-SeFirefox.
80+
81+ . PARAMETER Name
82+ The name of the element to find.
83+
84+ . PARAMETER Id
85+ The Id of the element to find.
86+
87+ . PARAMETER ClassName
88+ The ClassName of the element to find.
89+
90+ . PARAMETER LinkText
91+ The LinkText of the element to find.
92+
93+ . EXAMPLE
94+ $Element = Find-SeElement -Driver $Driver -Id "MyTextbox"
95+ #>
96+ function Find-SeElement {
97+ param (
98+ [Parameter ()]
99+ $Driver ,
100+ [Parameter (ParameterSetName = " ByName" )]
101+ $Name ,
102+ [Parameter (ParameterSetName = " ById" )]
103+ $Id ,
104+ [Parameter (ParameterSetName = " ByClassName" )]
105+ $ClassName ,
106+ [Parameter (ParameterSetName = " ByLinkText" )]
107+ $LinkText )
108+
109+ Process {
110+ if ($PSCmdlet.ParameterSetName -eq " ByName" ) {
111+ $Driver.FindElement ([OpenQA.Selenium.By ]::Name($Name ))
112+ }
113+
114+ if ($PSCmdlet.ParameterSetName -eq " ById" ) {
115+ $Driver.FindElement ([OpenQA.Selenium.By ]::Id($Id ))
116+ }
117+
118+ if ($PSCmdlet.ParameterSetName -eq " ByLinkText" ) {
119+ $Driver.FindElement ([OpenQA.Selenium.By ]::LinkText($LinkText ))
120+ }
121+
122+ if ($PSCmdlet.ParameterSetName -eq " ByClassName" ) {
123+ $Driver.FindElement ([OpenQA.Selenium.By ]::ClassName($ClassName ))
124+ }
125+ }
126+ }
127+
128+ <#
129+ . SYNOPSIS
130+ Clicks an element
131+
132+ . DESCRIPTION
133+ Clicks an element
134+
135+ . PARAMETER Element
136+ The element to click.
137+
138+ . EXAMPLE
139+ Invoke-SeClick -Element $Element
140+ #>
141+ function Invoke-SeClick {
142+ param ([OpenQA.Selenium.IWebElement ]$Element )
143+
144+ $Element.Click ()
145+ }
146+
147+ <#
148+ . SYNOPSIS
149+ Sends keys to an element
150+
151+ . DESCRIPTION
152+ Sends keys to an element
153+
154+ . PARAMETER Element
155+ The element to send keys to.
156+
157+ . PARAMETER Keys
158+ The keys to send.
159+
160+ . EXAMPLE
161+ Send-SeKeys -Element $Element -Keys "Hey, there!"
162+ #>
163+ function Send-SeKeys {
164+ param ([OpenQA.Selenium.IWebElement ]$Element , [string ]$Keys )
165+
166+ $Element.SendKeys ($Keys )
167+ }
0 commit comments