使用拆分器发送密钥



我想使用Splinter测试一个自动完成框。我需要将"向下"one_answers"输入"键发送到浏览器,但我在执行此操作时遇到了问题。

我目前正在找到一个输入框,并在该框中键入"tes"成功

context.browser.find_by_xpath(\somexpath).first.type('tes')

我接下来要做的是向浏览器发送一些键,特别是"向下"键(选择第一个自动完成建议),然后发送"输入"键来选择自动完成元素。

我尝试了大量的搜索,但不知道如何做到这一点。

我甚至尝试了一些javascript

script = 'var press = jQuery.Event("keypress"); press.keyCode = 34; press.keyCode = 13;'
context.browser.execute_script(script)

但不幸的是,没有起到任何作用

我正在使用的软件包:

django 1.6django-behavior==0.1.2碎片0.6

当前配置为:
从splitte.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,而不是splinter.driver.webdriver.WebDriverElement,因此很遗憾,您不能直接对find_by_*(...)的返回值调用send_keys

从文档中可以看出:

from splinter import Browser
from selenium.webdriver.common.keys import Keys
browser = Browser()
browser.type(Keys.RETURN)

相关内容

  • 没有找到相关文章

最新更新