RSelenium:查找与Xpath的链接

Cpt*_*emo 5 selenium xpath r rselenium

我想在RSelenium和页面中找到PDF文件的所有链接Xpath.

请考虑

require(RSelenium)
RSelenium::checkForServer()

RSelenium::startServer()

remDr <- remoteDriver()
remDr$open()

remDr$navigate("https://cran.r-project.org/manuals.html")
Run Code Online (Sandbox Code Playgroud)

在页面中有多个指向PDF文件的链接,例如

<a href="doc/manuals/r-release/R-intro.pdf">PDF</a>
Run Code Online (Sandbox Code Playgroud)

但我第一次尝试

remDr$findElement(using = "xpath", "//a[contains(@href,'.pdf')/@href")
Run Code Online (Sandbox Code Playgroud)

产生以下错误

Error:   Summary: InvalidSelector
     Detail: Argument was an invalid selector (e.g. XPath/CSS).
     class: org.openqa.selenium.InvalidSelectorException
Run Code Online (Sandbox Code Playgroud)

我的语法错了吗?

ale*_*cxe 10

表达式中存在语法错误,缺少结束]:

//a[contains(@href,'.pdf')]/@href
                      HERE^
Run Code Online (Sandbox Code Playgroud)

但是,即使你修复它,你也会得到一个错误 - 这次是另一个错误.这是因为selenium中的XPath表达式必须指向Web元素而不是元素属性.换句话说,用于//a[contains(@href,'.pdf')]查找元素,然后使用get_attribute方法获取href属性值.


请注意,您还可以通过链接文本找到链接:

remDr$findElement(using = "link text", "PDF")
Run Code Online (Sandbox Code Playgroud)