thu*_*k88 3 selenium r rselenium
我已经为以下几行代码苦苦挣扎了几个小时,但我似乎仍然没有接近解决方案。我的代码如下:
#create a list of all the question elements on the page
questions <- remDr$findElements(using = 'xpath', "//div[@class='question-text']")
#get the first question element in the list
question <- questions[1]
#get the text of the question element
question$getElementText()
Run Code Online (Sandbox Code Playgroud)
当我使用 RStudio 进行调试时,似乎“问题”列表中的所有“问题”元素都正确填充了;'question' 项被正确填充了列表中的第一个 'question' 元素;但是下一行代码的许多变体,旨在获取问题元素中的文本,似乎都失败了,给出了以下错误:
Error in evalq({ : attempt to apply non-function
Run Code Online (Sandbox Code Playgroud)
错误可能来自代码的不同部分,但可能性很小,因为注释掉该行似乎可以让其他一切正常工作。
我将非常感谢你们和女孩们可能提供的任何帮助。我正在使用 RSelenium 在 R 中编程 - 正如您可能会说的,我是 R 的新手,尽管我在其他环境中使用 Selenium 的经验非常有限。
预先感谢您的想法!
question没有调用的函数getElementText;它是一个list对象而不是一个webElement对象。你需要[[而不是[- 查看这个例子:
library(RSelenium)
rD <- rsDriver(port=4444L, browser = "phantomjs")
remDr <- rD[["client"]]
remDr$navigate(
"http://stackoverflow.com/questions/43833649/get-element-text-using-rselenium")
elems <- remDr$findElements(using = 'xpath', "//a")
elem <- elems[1]
class(elem)
# [1] "list"
elem$getElementText()
# Error: attempt to apply non-function
Run Code Online (Sandbox Code Playgroud)
现在
elem <- elems[[1]]
class(elem)
# [1] "webElement"
elem$getElementText()
# [[1]]
# [1] "Stack Overflow"
elem$getElementText()[[1]]
# [1] "Stack Overflow"
remDr$close()
rD[["server"]]$stop()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5464 次 |
| 最近记录: |