首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python,获取xPath元素文本

Python,获取xPath元素文本
EN

Stack Overflow用户
提问于 2017-03-31 14:46:13
回答 2查看 157关注 0票数 1

我被堆叠在需要打印<li>元素全文的代码中。

代码语言:javascript
复制
<h2>Product details</h2>
  <div class="content">

<ul>

    <li> <b>Paperback:</b> 288 pages</li>
    <li> <b>Publisher:</b> Pocket Books (October 1, 1998)</li>
    <li> <b>Language:</b> English</li>
    <li> <b>ISBN-10:</b> 0671027034</li>
    <li> <b>ISBN-13:</b> 978-0671027032</li>
    <li>  <b>Product Dimensions: </b>5.3 x 0.8 x 8.2 inches</li>

</ul>

实际上是amazon产品的详细信息,我使用xpath查找包含文本“ISBN-10”的类:

代码语言:javascript
复制
print driver.find_element_by_xpath("//*[contains(text(), 'ISBN-10')]").text

它发现元素很好,但是我的输出是:

代码语言:javascript
复制
ISBN-10

我应该使用什么来获取ISBN-10附带的文本,所以我的输出应该是:

代码语言:javascript
复制
ISBN-10: 0671027034

我不想搜索所有的<li>元素并从列表中打印3。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-31 15:49:30

尝试使用xpath,如果您面临任何问题,请告诉我

代码语言:javascript
复制
print driver.find_element_by_xpath("//div[@class='content']/ul/li[contains(.,'ISBN-10')]").text
票数 0
EN

Stack Overflow用户

发布于 2017-03-31 15:54:45

你的XPath非常接近。问题是,您正在寻找*作为元素,在XPath术语中,它意味着任何元素。如果您查看HTML,得到的匹配是B标记,

代码语言:javascript
复制
<b>ISBN-10:</b>

因为这才是匹配的。如果您只是将XPath更改为查找包含LI标记而不是*,那么您将得到所要的内容。

代码语言:javascript
复制
print driver.find_element_by_xpath("//li[contains(text(), 'ISBN-10')]").text
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43143543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档