[英]How to find text on a webpage and get its XPath or CSS with Selenium and Java
[英]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.