如何使用 Rselenium findElement() 通过文本或 href select 一个 xpath?

How do I use Rselenium findElement() to select an xpath by text or href?

我知道还有其他关于堆栈溢出的问题,但我已经查看了所有这些问题,但似乎无法解决这个问题。我的初始代码如下:

library(RSelenium)
library(rvest)

remote_driver <- RSelenium::remoteDriver(
  remoteServerAddr = "localhost",
  port = 4445L,
  browserName = "firefox")
remote_driver$open()

# Navigate to search page
remote_driver$navigate("http://sipp.pn-pangkalanbun.go.id/list_perkara/search")

# Locate search box
search_element <- remote_driver$findElement(using = 'id', value = 'search-box')

# Enter search term
search_element$sendKeysToElement(list("Pencurian"))

# Locate search button
button_element <- remote_driver$findElement(using = 'id', value = 'search-btn1')

# Click search button
button_element$clickElement()

以上所有操作均有效,并显示了一页搜索结果。我现在想让 R 单击页面底部的页码 links 以显示更多结果页面。使用 Chrome 的 selenium 扩展,我发现第 2 页的以下 xpath 值 link:

xpath=(//a[contains(text(),'2')])[2]xpath=(//a[contains(@href, '#page-2')])[3]

我只想让 R 点击 link,但我似乎做不到。我已经尝试了以下两行代码:

button_element2 <- remote_driver$findElement(using = "xpath", value = "//a[contains(@href, '#page-2')])[3]")

button_element2 <- remote_driver$findElement(using = 'xpath', value = "(//a[contains(text(),'2')])[2]")

我还尝试了各种其他迭代,在这些迭代中我删除了字符串末尾的 [2] 和 [3],但无论我做什么,我都会遇到此错误的一些变体:

谁能帮我解决这个问题?

我们可以点击xpath,

remDr$findElement(using = 'xpath', value = '//*[@id="selector_bottom"]/ul/li[3]')$clickElement()

这里 [3] 表示 second 结果页。对于 third 页面,我们可以使用 xpath,

//*[@id="selector_bottom"]/ul/li[4]