如何在Rselenium中发布按键

时间:2018-04-07 02:08:57

标签: r selenium web-scraping rselenium

我试图成功按下控制键:

rD <- rsDriver (browser = 'chrome',chromever = "latest",port = 4445L)
chrome_client <-rD$client
chrome_client$sendKeysToActiveElement(list(key = "control"))

但问题是我无法释放此密钥,因此如果我点击另一个链接,它会创建一个新标签 我搜索了谷歌和stackoverflow,但还没有找到Rselenium的解决方案。

1 个答案:

答案 0 :(得分:0)

这不是在文档中,但我试图再次按下控制,另一家媒体发布了按键。

例如:
如果不按两次,将打开一个新选项卡。但是按下控件两次sendKeysToActiveElement()释放按键,它不会创建新标签。

rD <- rsDriver (browser = 'chrome',chromever = "latest",port = 4445L)
chrome_client <-rD$client
chrome_client$navigate("https://www.google.com/")
chrome_client$sendKeysToActiveElement(list(key = "control"))
ele_gmail <- chrome_client$findElement(using = "partial",value = "Gmail")
chrome_client$sendKeysToActiveElement(list(key = "control")) #press the same key again to release the keypress
ele_gmail$clickElement()

奇怪的是,它不在文档中 sendKeysToActiveElement(sendKeys)的文档:

将一系列击键发送到活动元素。此命令类似于除隐式终止之外的每个方面中的send keys命令:修饰符不会在调用结束时释放。相反,修改键的状态保持在调用之间,因此可以在按下修改键的同时执行鼠标交互。击键按列表发送。纯文本作为列表的未命名元素输入。键盘条目在'selKeys'中定义,应该以名称'key'列出。参见示例。