Как определить основной DIV, если один из его дочерних элементов состоит из некоторого текста? Использование c # и селена - PullRequest
1 голос
/ 29 марта 2019

Основной DIV состоит из текста одного из его дочерних элементов и состоит из кнопки, которую нужно нажать, если текст присутствует. Как определить основной div, чтобы продолжить работу с ним, если один из его дочерних элементов строго состоит из нужного мне текста?

Структура выглядит так:

<Div class="Green"> (Main Div i mentioned in description)
<Div class="Yel">
<Div class="Ora">
<Div class="Pur">
<span>text must be present</span>

Мне нужно определить основной div, чтобы продолжить с помощью findelement. то.

1 Ответ

0 голосов
/ 30 марта 2019

Вы пробовали ниже.

Browser.FindElement(By.XPath("//div[@class='Green' and //span[normalize-space(.)='137']]//button[@class='needed_item']")).Click()

или

Browser.FindElement(By.XPath("//span[normalize-space(.)='137']/ancestor::div[@class='Green']//button[@class='needed_item']")).Click()

Этот xpath сначала найдет основной div, имеющий диапазон с текстом 137. А затем нажмите на кнопку, у которой есть класс needed_item. Рассмотрим структуру ниже для xpath.

<div @understand='main_div' @class='Green'>
    <div @understand='child_div1'></div>
    <div @understand='child_div2'>
        <span @understand='target_span'> 137 </span>
    </div>
    <div @understand='child_div3></div>
    <div @understand='div with button'>
        <button @class='needed_item'>Target Button</button>
    </div>
 </div>

Дайте мне знать, если есть какие-либо изменения в структуре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...