Найти общего родителя с помощью RSelenium - PullRequest
0 голосов
/ 01 ноября 2018

Я ищу эквивалент найти общего родителя, используя Xpath в RSelenium.

Скажи, что у меня есть:

<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

Clarfication: : Я хотел бы найти табличный тег! Я не хочу указывать это заранее в качестве входных данных.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Чтобы найти общего родителя , используя Xpath - RSelenium , вы можете использовать следующее решение:

  • XPath1:

    //table//tr/td[normalize-space()='sometext'][normalize-space()='digital'][normalize-space()='digi']/../..
    
  • XPath2 (учитывая тега вы не знаете <table>):

    //td[normalize-space()='sometext' and normalize-space()='digital' and normalize-space()='digi']//preceding::table[1]
    
0 голосов
/ 01 ноября 2018

Вы можете попробовать XPath

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

, если вы хотите выбрать grandparent (обратите внимание, что table не является прямым родителем td) элемента ячейки с определенным значением

Если вы хотите, чтобы table соответствовало нескольким ячейкам:

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