使用Capybara和Selenium如何进行SHIFT +点击

时间:2015-11-05 07:05:17

标签: ruby selenium capybara

我正在尝试通过单击第一个元素来测试表中的选择乘法行,然后使用SHIFT单击最后一个元素。但到目前为止没有运气..

我知道Selenium有以下内容来调用SHIFT键:

from selenium.webdriver.common.keys import Keys

element.send_keys(Keys.SHIFT) 

如何使用Capybara实现相同的预期行为?

2 个答案:

答案 0 :(得分:1)

更新使用现代版本的Capybara你应该能够做到

last_element.click(:shift)

https://www.rubydoc.info/github/jnicklas/capybara/Capybara/Node/Element#click-instance_method

=============================================

在Capybara没有交叉驱动方式可以做到这一点但是当你使用selenium驱动程序时你可以做到

 page.driver.browser.action.key_down(:shift).click(last_element.native).key_up(:shift).perform

*注意我还没有测试过那些确切的代码,所以可能存在拼写错误,但它应该关闭

答案 1 :(得分:0)

page.driver.browser.action.key_down(:shift).perform为您提供一个状态,在该状态下,键处于“按住”状态,然后您可以执行单击。 page.driver.browser.action.key_down(:shift).perform然后释放密钥。正如@Thomas Walpole指出的那样,这是一个遗留问题,适用于Rails 4(在我的情况下)。在新版本的水豚中,element.click(:shift)应该可以解决问题。