<p class="result-price">
<span>Price</span>
$25.00 |
<span>Member Price</span>
$25.00
<span>(0% discount)</span>
</p>
<p class="result-rating">
从上面的HTML标签中你可以注意到$ 25.00 |只是一个文本,并没有与任何HTML标签相关联,我编写了以下x路径来检索它:
//div[contains(@data-title,'Rafael B.: Arrangement and Composition')]/div[3]/p[1]/text()
[2]。
它确实提取了文本,但在xpath检查器中,结果显示在容器中。 当我在我的脚本中使用相同的x路径时,它不会检索文本值。
有人可以请求帮助。看起来像文本在容器/文本区域
答案 0 :(得分:5)
这是一种检索价格的方法:
//span[text()="Price"]/following-sibling::text()[1]
或
//p[@class="result-price"]/span[1]/following-sibling::text()[1]
答案 1 :(得分:0)
selenium webdriver不可能直接提取这样的东西。因为,即使它可能显示为导致元素的xpath(使用Firepath时),但它仍然会引发 InvalidSelectorException 。因此,我认为获取文本的唯一方法是获取父节点的innerHTML /文本,然后使用“substring()”或“split”来提取所需的文本。
根据上面的html代码段,您可以使用以下 Java代码将输出设为“$ 25.00 |”: -
String text = driver.findElement(By.xpath("//p[@class='result-price']")).getText().substring(6, 14); // Output will be $25.00 |
System.out.println(text);
答案 2 :(得分:0)
Here the easiest way:
//p[contains(.,'$25.00')]
or you can find any text like below
//p[contains(.,'%replaceText%')]