Выполните правый клик на элементе с помощью RSelenium. - PullRequest
2 голосов
/ 06 мая 2019

Я пытаюсь изучить RSelenium в R, используя Firefox.Я уже могу найти нужный элемент и навести на него указатель мыши, но когда я пытаюсь щелкнуть по нему правой кнопкой мыши, вместо этого он щелкает левой кнопкой мыши.

Я попытался прочитать документацию (?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 голосов
/ 18 июня 2019

Вам будет интересно, но единственное изменение, которое вы должны сделать в своем скрипте, это следующее:

rdc$click(buttonId = 2)

Это вызовет щелчок правой кнопкой мыши в середине элемента.

...