我有一个问题: capybara 中的 send_keys 做了什么?
我知道:
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
背后的机制。
最佳答案
#send_keys
做它所说的——它通过事件将键发送到页面上的元素——element.send_keys([:ctrl, 'a'], 'hello')
将发送 ctrl-a 后跟键 h e l l o - 在输入字段中通常会选择所有文本然后替换它(平台相关,因为 ctrl vs cmd/meta)。事实上,它上传文件是 selenium 中文件输入方式的副作用,并且不一定跨驱动程序兼容,不应该依赖它来工作,甚至不应该继续在 selenium 中工作。对于上传文件,您应该使用`#attach_file(在执行任何需要进行的 css 更改之后,如果需要,使实际文件输入可见)
关于ruby - `send_keys` 在 capybara 中做了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37408660/