硒,从第n个相同的标签获取文本

时间:2020-04-13 16:00:54

标签: python selenium

我正在尝试从下面的html基中获取fourth class的跨度文本,以用于html基中该类的特定第n次迭代。

<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>

我想知道是否有一种方法可以专门捕获第二次和第三次迭代,因此输出为200300

我只能使用以下方法从第一次迭代中检索100

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

2 个答案:

答案 0 :(得分:1)

这可以通过第n个CSS选择器来完成。也可用于xpath

有关示例XPath query to get nth instance of an element

,请参见类似的问题

答案 1 :(得分:0)

您可以通过使用findElements获取定位器的数量来做到这一点。一旦计数,就可以使用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;
}