2015-02-10 70 views
2

我想使用分割来测试自动填充框。我需要将'down'和'enter'键发送到浏览器,但我在这样做时遇到了问题。使用分割发送键

我目前发现的输入框,输入“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的行为== 0.1.2 splinter 0.6

当前配置为:
from splinter.b rowser导入浏览器 从django.test.client进口客户

context.browser = Browser('chrome') 
context.client = Client() 

回答

1

您可以通过切换到有源元件发送键:

from selenium.webdriver.common.keys import Keys 

context.browser.find_by_xpath(\\some\xpath\).first.type('tes') 
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,因此很遗憾,您不能直接拨打send_keys返回值find_by_*(...)