Skip to content

Commit

Permalink
More bits needed to make a basic test for send_keys
Browse files Browse the repository at this point in the history
  • Loading branch information
jgraham committed Mar 2, 2015
1 parent 02f9686 commit 5b17efb
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 1 deletion.
48 changes: 47 additions & 1 deletion tools/webdriver/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ def set_window_size(self, height, width, raw_body=Missing, headers=Missing):
"height": height}
else:
body = raw_body
return self.send_command("POST", "window/size", raw_body, headers)
return self.send_command("POST", "window/size", body, headers)

def get_window_size(self, raw_body=Missing, headers=Missing):
return self.send_command("GET", "window/size", raw_body, headers)
Expand All @@ -180,6 +180,52 @@ def maximize_window(self, raw_body=Missing, headers=Missing):
# def fullscreen_window(self, raw_body=Missing, headers=Missing):
# return self.send_command("POST", "", raw_body, headers)

#[...]

def find_element(self, strategy, selector, raw_body=Missing, headers=Missing):
if raw_body is Missing:
body = {"using": strategy,
"value": selector}
else:
body = raw_body
return self.send_command("POST", "element", body, headers)

def element(self, data):
return Element(self, data["element-6066-11e4-a52e-4f735466cecf"])


#[...]

def execute_script(self, script, args=Missing, raw_body=Missing, headers=Missing):
if args is Missing:
args = []

if raw_body is Missing:
body = {
"script": script,
"args": args
}
else:
body = raw_body
return self.send_command("POST", "execute", body, headers)

class Element(object):
def __init__(self, session, id):
self.session = session
self.id = id

def url(self, suffix):
return "element/%s/%s" % (self.id, suffix)

def send_keys(self, keys, raw_body=Missing, headers=Missing):
if isinstance(keys, (str, unicode)):
keys = [char for char in keys]
if raw_body is Missing:
body = {"value": keys}
else:
body = raw_body
return self.session.send_command("POST", self.url("value"), body, headers)

class Response(object):
def __init__(self, status, reason, headers, body):
self.status = status
Expand Down
13 changes: 13 additions & 0 deletions webdriver/tests/test_send_keys.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from tools.webdriver import TestBase, test as t

class Test(TestBase):
def test_keys(self):
self.session.get(self.session.url("/webdriver/resources/form.html"))
element_resp = self.session.find_element("css selector", "input")
elem = self.session.element(element_resp.data["value"])
send_keys_resp = elem.send_keys("PASS")
t.assert_resp(send_keys_resp, status=200)
t.assert_equals(send_keys_resp.data, {})
resp = self.session.execute_script("""return document.querySelector('input').value""");
t.assert_resp(resp, status=200)
t.assert_equals(resp.data, {"value": "PASS"})

0 comments on commit 5b17efb

Please sign in to comment.