繁体   English   中英

在Shiny中查找元素位置

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM