通过在Selenium IDE中的命令下运行。我设法得到这样的句子:“ 您的预订ID为1234 ”。我将句子存储在名为 myText
的变量中
<table>
<tr>
<th>Command</th>
<th>Target</th>
<th>Value</th>
</tr>
<tr>
<td>store text</td>
<td>xpath=//div[@id='booking']/div/div[3]</td>
<td>myText</td>
</tr>
</table>
我如何只获取数字并将其存储在变量中以备后用?我需要使用JavaScript还是只需要操纵xpath?
注意:数字是动态的
谢谢!
答案 0 :(得分:2)
如果文本Your booking ID is
始终与您可以使用的文本相同,则为:
substring-after(//div[@id='booking']/div/div[3], 'Your booking ID is ')
输入:
<html>
<div id="booking">
<div>
<div>bla bla bla</div>
<div>bla bla bla</div>
<div>Your booking ID is 1234</div>
<div>bla bla bla</div>
</div>
</div>
</html>
使用XSLT的XPath
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="text" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />
<xsl:template match="/">
<xsl:value-of select="substring-after(//div[@id='booking']/div/div[3], 'Your booking ID is ')"/>
</xsl:template>
</xsl:transform>
结果:
1234
请参见以下链接: http://xsltransform.net/gVAjbSz
答案 1 :(得分:1)
除了xpath和Javascript,还有第三个选项: Regex
如果文本Your booking ID
始终与您可以使用kantu selenium ide的sourceExtract命令一起使用
sourcExtract | regex=Your booking number is (\d+)@1,1 | number
测试:下面的宏在此stackoverflow 页上有效:-) ...只需将其粘贴到source code tab中。
{
"Name": "regex test",
"CreationDate": "2018-12-12",
"Commands": [
{
"Command": "open",
"Target": "https://stackoverflow.com/questions/53737506/how-to-get-number-only-by-running-the-command-in-the-latest-version-of-selenium/53741771#53741771",
"Value": ""
},
{
"Command": "sourceExtract",
"Target": "regex=Your booking number is (\\d+)@1,1",
"Value": "test"
},
{
"Command": "echo",
"Target": "number is ${test}",
"Value": "green"
}
]
}
宏的测试数据-上面宏中的正则表达式在下面的代码块中找到字符串 :
<div>bla bla bla</div>
<div>bla bla bla</div>
<div>Your booking number is 56789</div>
<div>bla bla bla</div>
答案 2 :(得分:0)
在之后使用子串
substring-before(substring-after('//div[@id='booking']/div/div[3]','Your booking ID is '),'/')
答案 3 :(得分:0)
您可以使用Xpath 2.0吗?
translate(//div[@id='booking']/div/div[3], replace(//div[@id='booking']/div/div[3], '\d', ''), '')