我想获取特定的文本行,即此代码的“clip:”下的“URL”。
我试过了
driver.findElement(By.xpath("//*[@id="player"]/script[2]/text()")).getText();
但它正在获取整个文本。我只想获取网址。有什么解决办法吗?
<div id="player">
<script type='text/javascript'>
flowplayer("thisPlayer", {
src: "http://example.com.swf",
scaling: 'orig',
wmode: "opaque"
}, {
key: "some key",
clip: {
url: 'http://someurl/example.mp4',
scaling: 'fit',
autoPlay: false,
autoBuffering: true,
provider: 'lighttpd'
},
plugins: {
lighttpd: {
url: "http://example.com/flowplayer.pseudostreaming-byterange-3.2.11.swf"
}
}
});
</script>
</div>
最佳答案
我认为您无法从 xpath 获取 url。
获得文本后,就像您所做的那样,您应该使用正则表达式来获取您的网址。
也许是这样的:
/url:\s+"([^"]+)"/
这将保存匹配的网址。
以下是有关如何集成到代码中的示例:
// From your example
var scriptText = driver.findElement(By.xpath("//*[@id="player"]/script[2]/text()")).getText();
// run the regexp on the script text
var matches = scriptText.match(/url:\s+"([^"]+)"/);
// check if you found something
if (matches.length > 0) {
var url = matches[1];
}
关于javascript - 如何通过 xpath 从 selenium webdriver 中的 javascript 代码获取特定文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40190023/