我想强调的是,我需要访问实际的计算值,而不仅仅是访问例如指定的样式。特定元素的类。
不幸的是,我运行的脚本几乎不会返回任何结果-主要是空字符串或错误。
仅当我尝试访问宽度,高度或浮点数时,它的确返回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方法