当元素中包含更多元素时获取文本

时间:2018-11-23 10:03:48

标签: html python-3.x selenium

我正在Python和Firefox中使用Selenium,我想在HTML的下一部分中获取文本“ TextB”,我尝试过使用element.get_attribute('textContent'),但它也需要“ TextA”,是否有任何形式仅获得该文本?

<p class="class_name" id="id_name">
    <i class="class_name2"></i>
    <b>TextA</b>
    TextB
</p>

3 个答案:

答案 0 :(得分:3)

尝试仅获取最后一个孩子的文本内容

element = driver.find_element_by_id('id_name')
driver.execute_script('return arguments[0].lastChild.textContent', element)

答案 1 :(得分:0)

下面为您提供了TextA,它是b标签的文本

driver.find_element_by_xpath("//p[@class='class_name']/b").text;

下面为您提供了TextB,它是p标签的文本

driver.find_element_by_xpath("//p[@class='class_name']").text;

答案 2 :(得分:0)

根据您提供的 HTML ,以更 Pythonic 的方式提取文本 TextB 的方法是使用{{3} }方法如下:

myText = driver.find_element_by_xpath("//p[@class='class_name' and @id='id_name']").get_attribute("innerHTML").splitlines()[3]