我想使用 Splinter 测试自动完成框。我需要将“向下”和“输入”键发送到浏览器,但我在执行此操作时遇到了困难。
我目前正在找到一个输入框并成功在该框中输入“tes”
context.browser.find_by_xpath(\\some\xpath\).first.type('tes')
接下来我想做的是将一些键发送到浏览器,特别是“向下”键(用于选择第一个自动完成建议),然后发送“回车”键以选择该自动完成元素。
我已经尝试过广泛的搜索,但不知道如何做到这一点。
我什至尝试了一些javascript
script = 'var press = jQuery.Event("keypress"); press.keyCode = 34; press.keyCode = 13;'
context.browser.execute_script(script)
但不幸的是这并没有起到任何作用
我正在使用的包:
Django 1.6
django-behave==0.1.2
碎片 0.6
当前配置是:
从 splinter.browser 导入浏览器
从 django.test.client 导入客户端
context.browser = Browser('chrome')
context.client = Client()
您可以通过切换到活动元素来发送密钥:
from selenium.webdriver.common.keys import Keys
context.browser.find_by_xpath('//input[@name="username"]').first.type('test')
active_web_element = context.browser.driver.switch_to_active_element()
active_web_element.send_keys(Keys.PAGE_DOWN)
active_web_element.send_keys(Keys.ENTER)
活动元素将是您与之交互的最后一个元素,因此在本例中是您输入的字段。
switch_to_active_element()
返回一个selenium.webdriver.remote.webelement.WebElement
, not a splinter.driver.webdriver.WebDriverElement
,所以很遗憾你不能打电话send_keys
的返回值find_by_*(...)
直接地。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)