2016-07-28 82 views
-4
<span> 
     <b>Changed from </b>ABC 
    <span> 
    </span> 
     <b>to </b> 
     XYZ 
    </span> 

我有上面的html的代码。 我想检索字符串“to”后填充的动态值。我尝试了XPath,但没有获得价值。 有什么办法可以使用正则表达式或XPath来获得所需的值。使用XPATH或正则表达式获取正确的值

预期的答案是XYZ(,请注意这是在运行时填充)

的文本“从ABC更改为XYZ”

预期的答案字符串后面是什么“到”

回答

1

你可以看一些论坛,你会找到答案,但可以使用以下XPath:

/span/text() 

为你测试的XPath你可以使用: http://www.xpathtester.com/xpath

但是,这是一个重复的,已经有几个打开,这样的问题这一点: XPath: select text node

希望它可以帮助

+0

感谢您的回复,但我得到了ABC和XYZ。我只对XYZ感兴趣,即“到”后的任何值 – Vikram

+0

Vikram还有另外一个问题:http://stackoverflow.com/questions/105613/can-xpath-return-only-nodes-that-have-a-child-的-X。如果你正在进行这种开发,并且实际上正在开发,你可以添加新的属性来帮助你的生活。为了避免支持浏览器属性出现问题,只需在属性前加上CM_(例如自定义)即可。然后只要找他们。 – Deceiver

+0

我正在测试一个页面,它有这种类型的html,我正在努力获得这个文本。我需要这个,因为在Action 1之后这个文本被加载了。只有在这之后,我才能够行动2 – Vikram

1

你可以使用By.xpath和如下一些Java的东西的欲望文本: -

WebElement el = driver.findElement(By.xpath("(//span)[2]")); 
String wholeText = el.getText(); 
String desireText = wholeText.substring(wholeText.lastIndexOf(" ") + 1); //it will gives XYZ 

String wholeText = el.getAttribute("innerHTML"); 
String desireText = wholeText.substring(wholeText.lastIndexOf(">") + 1); //it will gives XYZ 

希望它有助于.. :)

+0

谢谢SAurabh,我曾考虑过这个问题,但我正在寻找纯XPath或正则表达式。 – Vikram

+0

@Vikram如果你正在使用'selenium' ......你无法直接从'xpath'中找到文本......如果你认为像从'xpath'使用'text()'节点一样,它不适用于硒.. :) –

+0

尝试将它与Robotframework/java一起使用,但是您正确无法从xpath直接获取值 – Vikram