Merge pull request #2 from darkmusic/master
Added element.click() and element.sendKeys()
This commit is contained in:
commit
bc9dd909a6
1 changed files with 22 additions and 0 deletions
|
|
@ -110,6 +110,28 @@ proc getText*(self: Element): string =
|
||||||
|
|
||||||
return respObj["value"].getStr()
|
return respObj["value"].getStr()
|
||||||
|
|
||||||
|
proc click*(self: Element) =
|
||||||
|
let reqUrl = $(self.session.driver.url / "session" / self.session.id /
|
||||||
|
"element" / self.id / "click")
|
||||||
|
let obj = %*{}
|
||||||
|
let resp = self.session.driver.client.post(reqUrl, $obj)
|
||||||
|
if resp.status != Http200:
|
||||||
|
raise newException(WebDriverException, resp.status)
|
||||||
|
|
||||||
|
discard checkResponse(resp.body)
|
||||||
|
|
||||||
|
# Note: There currently is an open bug in geckodriver that causes DOM events not to fire when sending keys.
|
||||||
|
# https://github.com/mozilla/geckodriver/issues/348
|
||||||
|
proc sendKeys*(self: Element, text: string) =
|
||||||
|
let reqUrl = $(self.session.driver.url / "session" / self.session.id /
|
||||||
|
"element" / self.id / "value")
|
||||||
|
let obj = %*{"text": text}
|
||||||
|
let resp = self.session.driver.client.post(reqUrl, $obj)
|
||||||
|
if resp.status != Http200:
|
||||||
|
raise newException(WebDriverException, resp.status)
|
||||||
|
|
||||||
|
discard checkResponse(resp.body)
|
||||||
|
|
||||||
when isMainModule:
|
when isMainModule:
|
||||||
let webDriver = newWebDriver()
|
let webDriver = newWebDriver()
|
||||||
let session = webDriver.createSession()
|
let session = webDriver.createSession()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue