使用RSelenium执行拖放操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用RSelenium执行拖放操作相关的知识,希望对你有一定的参考价值。

我想使用RSelenium从这个网站http://highereducationstatistics.education.gov.au/下载文件(通过点击excel图像)。但是,在下载文件之前,必须执行一系列拖放操作(请参阅此图像http://highereducationstatistics.education.gov.au/images/preDragDimension.png),以便选择正确的数据集(有关说明,请参阅此http://highereducationstatistics.education.gov.au/GettingStarted.aspx)。

我想知道RSelenium是否具有这种类型的拖放功能。我已经搜索了这一整天并猜测mouseMoveToLocation与其他函数(如buttondown函数)结合可能是答案,但不知道如何使用它们。有人能帮忙吗?

非常感谢。

答案

首先使用RSelenium导航到页面:

library(RSelenium)
rD <- rsDriver() # runs a chrome browser, wait for necessary files to download
remDr <- rD$client
remDr$navigate("http://highereducationstatistics.education.gov.au/")

然后找到要拖动到图表/网格的元素。在本例中,我将从左侧菜单中选择“课程级别”。

webElem1 <- remDr$findElement('xpath', "//span[@title = 'Course Level']")

选择要放置此菜单项的元素。在这种情况下,元素有一个id = "olapClientGridXrowHeader"

webElem2 <- remDr$findElement(using = 'id', "olapClientGridXrowHeader")

选择两个项目后,将第一个项目拖动到第二个项目中,如下所示:

remDr$mouseMoveToLocation(webElement = webElem1)
remDr$buttondown()
remDr$mouseMoveToLocation(webElement = webElem2)
remDr$buttonup()

请注意,这些方法适用于远程驱动程序,而不是元素。

以上是关于使用RSelenium执行拖放操作的主要内容,如果未能解决你的问题,请参考以下文章

RSelenium:使用Chrome下载文件时出错

Selenium Grid操作使用指南

在两个片段之间拖放?

并行运行 RSelenium

套接字编程中的Java拖放问题

如何在 Linux 服务器上使用 Rselenium