在Rselenium中运行executeScript的问题

时间:2019-05-27 09:39:26

标签: javascript r selenium docker rselenium

  1. 我尝试借助RSelenium-executeScript-getComputedStyle从RStudio获取网页元素的CSS样式。
  2. 我在Docker上运行selenium / standalone-firefox。
  3. 我不确定这是否是正常现象,但我看不到浏览器处于打开状态(视觉上)。
  4. 我是新手-营销人员,不是程序员:)

我想强调的是,我需要访问实际的计算值,而不仅仅是访问例如指定的样式。特定元素的类。

不幸的是,我运行的脚本几乎不会返回任何结果-主要是空字符串或错误。

仅当我尝试访问宽度,高度或浮点数时,它的确返回R中的值。

您能给我一个提示可能是什么问题吗?我不知道是Selenium / Docker还是我在R中的代码(为什么浏览器无法启动?)


我尝试过例如:

url <- ....
install.packages("RSelenium")
library(RSelenium)
remDr <- remoteDriver(port=4445L)
remDr$open()

remDr$navigate(url)
remDr$getStatus()
remDr$getCurrentUrl()


remDr$executeScript("return window.getComputedStyle(document.querySelector('ul.menu-list')).background")

,并在R控制台中输入了空字符串:

[[1]]
[1] ""

但是,当我将下面的代码放在chrome控制台中时,它的确会返回有关背景的信息:

window.getComputedStyle(document.querySelector('ul.menu-list')).background

> rgb(245, 245, 245) none repeat scroll 0% 0% / auto padding-box border-box

我还尝试了其他方法:

test_element <- remDr$findElement('xpath', '/html/body/div[2]/div/span[2]')

remDr$executeScript("return window.getComputedStyle(arguments[1])", args = list(test_element))

并进入R控制台:

硒消息:TypeError:Window.getComputedStyle的参数1不是对象。 构建信息:版本:'3.141.59',修订版本:'e82be7d358',时间:'2018-11-14T08:25:53' 系统信息:主机:'870bdbc12f21',ip:'172.17.0.2',os.name:'Linux',os.arch:'amd64',os.version:'4.9.125-linuxkit',java.version:' 1.8.0_191' 驱动程序信息:driver.version:未知

错误:摘要:JavaScriptError      详细信息:执行用户提供的JavaScript时发生错误。      类:org.openqa.selenium.JavascriptException      更多详细信息:运行errorDetails方法

0 个答案:

没有答案