【发布时间】:2021-10-14 15:19:56
【问题描述】:
我正在尝试抓取一个页面,获取一盘棋的移动列表,该移动列表位于右侧菜单中的“移动”选项卡下。
library(RSelenium)
url <- "https://play.xiangqi.com/game/oX00ly"
rD <- RSelenium::rsDriver(browser = "firefox", check = F)
remDr <- rD$client
remDr$navigate(url = url)
在浏览器中手动单击“移动”选项卡时,我可以通过
webElem <- remDr$findElement("css selector", ".Wrapper__MovesTabWrapper-sc-13rqht3-2")
webElem$getElementText()[[1]]
哪个(正确)返回
[1] "1\np3+1\nP3+1\n2\ne3+5\nH2+3\n3\nh8+7\nH8+7\n4\nh2+3\nR1+1\n5\nc8=9\nH3+2\n6\nc2+1\nE7+5\n7\nh3+4\nA6+5\n8\nh4+3\nR9=6\n9\nr1=3\nR6+6\n10\nc2+2\nH2+3\n11\nr9=8\nC2=3\n12\nr8+3\nR1=4\n13\nc2-1\nR6=8\n14\nr8+4\nH3+1\n15\ne7+9\nC3+5\n16\ne9-7\nR4+3\n17\nc2=1\nR8=9\n18\nh3-4\nR4=6\n19\nc1=2\nR9-1\n20\nr3=2\nC8+7\n21\ne5-3\nR9=8\n22\nh4-3\nR8+2\n23\nh3-2\nR8+2\n24\ne7+5\nH7+8\n25\nr8-5\nC3+1\n26\nr8+2\nH8+7\n27\np9+1\nH7+5\n28\na6+5\nH5+7\n29\nk5=6\nR6=4\n30\na5+6\nR4+3"
问题
当尝试通过RSelenium点击按钮时,使用
webElem <- remDr$findElement("css selector", "#moves-tab")
webElem <-webElem$clickElement() # or webElem$click()
似乎什么都没有发生,我不知道如何进行故障排除。
问题
如何通过模拟单击(活动事件侦听器)切换到“移动”选项卡?
加分项:使用rvest 包可以做到这一点吗?
【问题讨论】:
-
我的问题是等待执行,而不是点击操作的记录。但为了完整起见,厄尔提到的帖子建议使用
remDr$executeScript("document.getElementById('moves-tab').click()")。 stackoverflow.com/questions/33127514/…,我在找到解决方案后发现的,报告了同样的问题,但使用了 java 标签。据我所知,Sys.sleep()写在一些RSelenium问题中,但没有提到作为无声错误结果的来源。