2015-10-28 45 views
2

我想在RSeleniumXpath的頁面中找到PDF文件的所有鏈接。RSelenium:通過Xpath查找鏈接

請考慮

require(RSelenium) 
RSelenium::checkForServer() 

RSelenium::startServer() 

remDr <- remoteDriver() 
remDr$open() 

remDr$navigate("https://cran.r-project.org/manuals.html") 

在頁面上有多個鏈接到PDF文件,如

<a href="doc/manuals/r-release/R-intro.pdf">PDF</a> 

但我的第一次嘗試

remDr$findElement(using = "xpath", "//a[contains(@href,'.pdf')/@href") 

產生以下錯誤

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

我的語法錯了嗎?

回答

5

還有就是你的表達式中有語法錯誤,缺少一個右]

//a[contains(@href,'.pdf')]/@href 
         HERE^ 

但是,即使你修復它,你會得到一個錯誤 - 一個不同的這段時間。這是因爲selenium中的XPath表達式必須指向web元素而不是元素屬性。換句話說,使用//a[contains(@href,'.pdf')]來查找元素,然後使用get_attribute方法來獲取href屬性值。


請注意,您還可以通過鏈接文本找到鏈接

remDr$findElement(using = "link text", "PDF")