使用RSelenium

时间:2019-05-06 16:20:48

标签: r firefox rselenium

我正在尝试使用Firefox学习R中的RSelenium。我已经可以找到所需的元素并将鼠标移到该元素上,但是当我尝试右键单击它时,最终将其改为左键单击。

我尝试阅读文档(?remoteDriver?webElement确实有帮助),但是webElement类只有clickElement方法,默认情况下该方法是左键单击并具有没有参数,并且remoteDriver具有click参数的buttonId方法,其中2或'RIGHT'应该在鼠标当前所在的位置上单击鼠标右键,但是由于某些原因它不起作用按我的意图,而是执行左键单击。

请注意,我知道关于JavaScript,Selenium,使用PhantomJS等的同一问题的现有问题,我已阅读它们,但对我没有帮助。如果您觉得我错过了任何事情,请随时给我链接。

在新标签页中打开页面也不是我的目标,这只是可以通过右键单击某个元素来执行操作的示例。

我能想到的最小的可重现示例是:

library(RSelenium)
rd <- rsDriver(browser = 'firefox')
rdc <- rd$client
rdc$navigate('http://google.com/ncr')
elem <- rdc$findElement('partial link','About')
rdc$mouseMoveToLocation(webElement = elem)
# the following should open contextual menu, but enters the "About" page instead
rdc$click(buttonId = 'RIGHT')
# if the above line worked correctly, the following should open the "About" page in new tab
# rdc$sendKeysToActiveElement(list(key='down_arrow',key='enter'))
# rd$server$stop() # close everything and free the port

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您会想知道,但是您应该在脚本中做的唯一更改是:

rdc$click(buttonId = 2)

它将在元素的中间触发右键单击。