python – 使用Splinter发送密钥
作者:互联网
我想使用Splinter测试自动完成框.我需要将’down’和’enter’键发送到浏览器,但是我在执行此操作时遇到了麻烦.
我目前正在找一个输入框并在该框中输入’tes’成功
context.browser.find_by_xpath(\\some\xpath\).first.type('tes')
我接下来要做的是向浏览器发送一些键,特别是’向下’键(选择第一个自动完成建议),然后发送’enter’键选择自动完成元素.
我尝试过广泛的搜索,但无法弄清楚如何做到这一点.
我甚至试过一些javascript
script = 'var press = jQuery.Event("keypress"); press.keyCode = 34; press.keyCode = 13;'
context.browser.execute_script(script)
但不幸的是,这没有做任何事情
我正在使用的包:
django 1.6
Django的循规蹈矩== 0.1.2
分裂0.6
当前配置是:
来自splinter.browser导入浏览器
来自django.test.client import 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,而不是splinter.driver.webdriver.WebDriverElement,所以很遗憾你不能直接在find_by _ *(…)的返回值上调用send_keys.
标签:python,django,splinter,python-behave 来源: https://codeday.me/bug/20190623/1275598.html