[英]Finding element location in Shiny
我有一个Shiny应用程序,该应用程序的表大小取决于输入,并且正在尝试使用RSelenium测试该应用程序。 我想使用XPath语法找到元素位置。 使用精确节点查找一个元素可以很好地工作,但是,找到多个元素根本不会返回任何结果。 无法共享我的Shiny应用程序,但RStudio在Shiny托管应用程序上会发生相同的结果。
library(RSelenium)
rd <- rsDriver()
r <- rd$client
r$navigate('https://shiny.rstudio.com/gallery/datatables-demo.html')
r$switchToFrame(r$findElements("css selector", "iframe")[[1]])
e <- r$findElements('xpath', "//*[@id='DataTables_Table_0']/tbody/tr[1]/td[3]")
e[[1]]$getElementText()
e[[1]]$getElementLocation()[c('x', 'y')]
# Works as expected
# Find all elements - does not find any elements
e_all <- r$findElements('xpath', "//*[@id='DataTables_Table_0']/tbody/tr[*]/td[*]")
在第一个XPath中,选择第三个td
元素,它是tbody
下第一个tr
元素的子元素。
在第二个XPath中,您要选择td
元素(仅当它具有子元素时),该元素是tr
元素的子元素,而tr
元素具有子元素(由于要选择td
子元素,所以必须具有子元素) 。
没有一些样本数据很难说清楚,但是我猜测td
元素都没有任何子元素,因此它什么也没选择。
调整XPath以删除两个谓词过滤器:
//*[@id='DataTables_Table_0']/tbody/tr/td
那应该从该表的所有行中选择所有列。
如果选择的列过多,并且您需要限制列,请提供一些示例内容并描述您要选择或排除的内容,我们可以帮助您添加适当的谓词过滤器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.