繁体   English   中英

XPATH-如何从网页获取文本?

[英]XPATH - How to get text from a webpage?

我需要使用XPATH从网页中选择特定文本。 我的文字如下所示

The "Add Account Offer" request has been submitted successfully with the order number css_334560.

在上面的行中,我需要使用XPATH仅获取“ css_334560”。 有人可以帮我吗?

HTML:-

<div id="secondColumn" class="floatBreaker">
<div id="mainContents">
<h1>Add Account Offers                     </h1>
<div class="infoBox">
<div class="topLine">
<div class="txtLineRight">
<div class="txtLineLeft">
<div class="txt">
<span>The "Add Account Offer" request has been submitted successfully with the order number css_334560.</span>
</div>
</div>

如果使用Java,则可以使用以下代码:

String a = driver.findElement(By.xpath("//div[@class='txt']/span")).getText(); 
a = a.substring(a.lastIndexOf(' ') + 1).replace(".", "");

第一行从跨度获取文本。 第二css_334560. 并删除点。

HTML代码不完整,所以我无法保证xpath是正确的。

根据情况,有几种可能性。

1-获取包含特定文本的文本节点:我使用了“添加帐户优惠”,但您可以使用“ css_”或该文本节点唯一的任何其他文本。

如果有几个匹配的文本节点:(获取它们并遍历它们,一一检查)

var snapElements = document.evaluate(
    './/text()[contains(.,"Add Account Offer")]',
    document.body, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

如果只有一个匹配的文本节点

var txt = document.evaluate(
    './/text()[contains(.,"Add Account Offer")]',
    document.body, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);

2-另一方面,如果<div class="txt">是唯一的(页面上只有一个),则可以通过以下方法更快地获取它:

var txt = document.querySelector('.txt');
if (txt) { txt = txt.textContent; }

也可能...

var txt = document.getElementsByClassName('txt');
if (txt[0]) { txt = txt[0].textContent; }

在获取全文之后,现在您可以使用(例如)RegEx获取所需的部分...例如:

var css = txt.match(/css_\d+/);

祝好运 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM