XPath,webdriver:如何获取元素文本?

时间:2015-05-11 16:20:38

标签: selenium xpath selenium-webdriver

<div class="request-credentials-view drawer">
  <div class="tip-inner" style="width: 686px;">
    <div class="drawer-arrow" style="left: 926.55px;"></div>
    <h3 class="heading">We've sent you an email </h3>

需要提取文字“我们已向您发送了一封电子邮件”。在x-path检查器中使用波纹管时:

//div[@class='request-credentials-view drawer']//h3[@class='heading']//*[text()="We've sent you an email"]

得到“找不到匹配”。也:

 //div[@class='request-credentials-view drawer']//h3[(@class='heading')]//*[text()='<template>'] 

在selenium web驱动程序代码中不起作用。

3 个答案:

答案 0 :(得分:1)

您是否尝试过contains()功能

//h3[contains(text(),"We've sent you an email")]

我真正喜欢的一件事是你可以在text()中进行部分匹配,特别是排除空格

答案 1 :(得分:1)

或者,如果您想依赖元素的文本,请使用normalize-space()去除文本周围的空格:

  

normalize-space功能剥离前导和尾随空格   从字符串中,用空格替换单个空白字符序列   space,并返回结果字符串。

//h3[normalize-space(.) = "We've sent you an email"]

或者,您可以使用CSS选择器找到h3元素,同时检查所需元素的类属性值:

div.request-credentials-view h3.heading

答案 2 :(得分:0)

试试这个:

String message = driver.findElement(By.className("heading")).getText();
System.out.println(message);