【问题标题】:Find common parent using RSelenium使用 RSelenium 查找共同父项
【发布时间】:2018-11-01 11:51:36
【问题描述】:

我在 RSelenium 中寻找相当于 find common parent using Xpath 的东西。

说我有:

<body>
    <table>
           <tr><td> sometext </td></tr>
           <tr><td> other </td></tr>
           <tr><td> digital </td></tr>
           <tr><td> digi </td></tr>
    </table>
</body>

我想获得(sometext、digital 和 digi)的父级。

我最好的尝试(没有成功):

xpath <- "(//body//*[contains(text(), 'text')][contains(text(), 'digi')])[last()]"
remDr$findElements("xpath", xpath)

预期输出为:

table

澄清:: 我想找到表格标签!我不想事先将其指定为输入。

【问题讨论】:

  • 您能否澄清一下更多:您是否需要选择具有特定值的两个或多个兄弟姐妹的父级?如果是这样,您是否需要保留这些元素的顺序?

标签: r selenium xpath rselenium


【解决方案1】:

你可以试试 XPath

//tr[td[normalize-space()="digi"]]/parent::*

如果您想选择具有特定值的单元格的祖父(注意table 不是td 的直接父级)元素

如果你想得到多个单元格匹配的table

//*[tr[normalize-space(td)="digi"] and tr[normalize-space(td)="digital"]]

【讨论】:

  • 感谢您的回答。问题假设我事先不知道标签“table”。相反,我想找到它。我对帖子进行了编辑,请参阅“澄清”。在被分析的下一页上,它可能是类似的信息,但它被包裹在一个通用的 div 标签中,......
  • @ThanksGuys 检查更新的答案。你是那个意思吗?请注意,table 不是td父级
【解决方案2】:

要使用 XpathRSelenium 找到 common parent,您可以使用以下解决方案:

  • XPath1:

    //table//tr/td[normalize-space()='sometext'][normalize-space()='digital'][normalize-space()='digi']/../..
    
  • XPath2(考虑到你不知道标签&lt;table&gt;):

    //td[normalize-space()='sometext' and normalize-space()='digital' and normalize-space()='digi']//preceding::table[1]
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 2016-06-11
    相关资源
    最近更新 更多