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