什么是在水豚中的'send_keys`

时间:2016-05-24 08:52:32

标签: ruby selenium-webdriver capybara

我遇到了问题:what is the send_keys did in capybara ?

我知道:

element.send_keys :enter 

点击enter

但我发现它还可以让我们在这里上传文件(capybara can not find file input field to attach file

例如:

element.send_keys("/home/userA/Desktop/chivalry-medieval-warfare.jpg")

将上传chivalry-medieval-warfare.jpg

怎么做呢?我完全不知道send_keys背后的机制。

1 个答案:

答案 0 :(得分:4)

#send_keys执行它所说的内容 - 它通过事件将密钥发送到页面上的元素 - element.send_keys([:ctrl, 'a'], 'hello')将发送ctrl-a后跟密钥hello - 在输入字段中通常会选择全部文本然后替换它(因为ctrl vs cmd / meta而依赖于平台)。它上传文件的一个副作用是文件在selenium工作中输入的方式的副作用,并且不一定兼容驱动程序,不应该依赖于工作甚至继续在​​selenium中工作。对于上传文件,您应该使用`#attach_file(在执行任何必要的css更改后,必要时可以使实际文件输入可见)