【问题标题】:Perform right click on element using RSelenium使用 RSelenium 对元素执行右键单击
【发布时间】:2019-05-06 16:20:48
【问题描述】:

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

我尝试阅读文档(?remoteDriver?webElement 真的很有帮助),但是webElement 类只有clickElement 方法,默认是左键单击并且没有参数,而remoteDriver 有带有buttonId 参数的click 方法,其中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

感谢您的帮助。

【问题讨论】:

  • 我删除了我的“想法”答案,因为它不起作用。导航到文本输入框后,webElem$sendKeysToActiveElement(list(key = 'shift', 'r')) 将用作键和弦(键入 R),但正如您所注意到的,这不适用于 shift+f10 键和弦。并且“菜单”键似乎没有被映射。我也无法让click(2) 工作。希望将此问题移回未回答的状态将为您带来更多流量和解决方案。

标签: r firefox rselenium


【解决方案1】:

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

rdc$click(buttonId = 2)

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

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2017-08-12
    相关资源
    最近更新 更多