Selenium, получи текст из того же тега - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь получить текст span для fourth class из следующей html базы для указанной c n-й итерации этого класса в базе html.

<ul class="first_class">
    <li class="second_class ">
        <span class="third_class">
            <span class="fourth_class">100</span> 
        " temp_x"</span>
    </li>
    <li class="second_class ">
        <span class="third_class">
            <span class="fourth_class" title="200">200</span>
        " temp_y"</span>
        </li>
    <li class="second_class ">
        <span class="third_class">
            <span class="fourth_class">300</span>
        " temp_z"</span>
    </li>
</ul>

Мне было интересно, есть ли способ специально захватить 2-ю и 3-ю итерацию, чтобы вывести 200 и 300

Я могу получить только 100, что с первой итерации, используя это:

self.driver.find_element_by_xpath("//span[@class='fourth class']").text

Ответы [ 2 ]

1 голос
/ 13 апреля 2020

Это можно сделать с помощью селектора nth css. Также доступно с xpath

См. Этот похожий вопрос для примера XPath-запрос для получения n-го экземпляра элемента

0 голосов
/ 13 апреля 2020

Вы можете сделать это, получив счетчик вашего локатора с помощью findElements. как только вы получите счет, вы можете пройти через l oop, используя свой путь xpath.

List<WebElement> list=driver.find_element_by_xpath("//span[@class='fourth class']");
for(int i=0;i<list.size();i++)
{
driver.find_element_by_xpath("(//span[@class='fourth_class'])[i]").text;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...