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