首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用casperjs从嵌入式脚本中检索文本?

如何使用casperjs从嵌入式脚本中检索文本?
EN

Stack Overflow用户
提问于 2016-08-23 18:51:07
回答 1查看 147关注 0票数 0

html元素是

代码语言:javascript
运行
复制
<script>
window.sawXmlIslandidClientStateXml="<nqw xmlns:saw=\x22com.siebel.analytics.web/report/v1.1\x22 xmlns:xsi=\x22http://www.w3.org/2001/XMLSchema-instance\x22 xmlns:sawst=\x22com.siebel.analytics.web/state/v1\x22>\u003csawst:clientState>\u003csawst:stateRef>\u003csawst:envState xmlns:sawst=\"com.siebel.analytics.web/state/v1\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlVersion=\"200811100\">\u003csawst:container cid=\"d:dashboard\" xsi:type=\"sawst:topLevelStateContainer\">\u003csawst:container cid=\"p:mco0pb0nob7sqjvg\" xsi:type=\"sawst:page\">\u003csawst:container cid=\"s:42263r43nih80fd1\" xsi:type=\"sawst:section\" rendered=\"true\">\u003csawst:container cid=\"g:c452lvndqssjqa45\" xsi:type=\"sawst:dashprompt\" links=\"-\" promptAutoCompleteState=\"off\"/>\u003c/sawst:container>\u003csawst:container cid=\"r:q4g2fiisnvk4nusv\" xsi:type=\"sawst:report\" links=\"fd\" defaultView=\"compoundView!1\" searchId=\"fvup02s9lt0o6urkplv4pqa5ri\" folder=\"/shared/Sales\" itemName=\"All Sales and Inventory Data\"/>\u003csawst:container cid=\"f:dpstate\" xsi:type=\"sawst:dashpromptstate\" statepoolId=\"ih2bj24l46bkgt558qsef04jeq\"/>\u003csawst:container cid=\"s:b0003tc6gnahvsfq\" xsi:type=\"sawst:section\" rendered=\"true\"/>\u003csawst:container cid=\"s:c5j314uterctfb08\" xsi:type=\"sawst:section\" rendered=\"true\"/>\u003c/sawst:container>\u003c/sawst:container>\u003c/sawst:envState>\u003c/sawst:stateRef>\u003csawst:reportXmlRefferedTo>\u003cref statePath=\"d:dashboard~p:mco0pb0nob7sqjvg~r:q4g2fiisnvk4nusv\" searchID=\"8oh8erup3kcqav10ukp36jaof2\">\u003c/ref>\u003c/sawst:reportXmlRefferedTo>\u003c/sawst:clientState></nqw>";
</script>

我想从这个脚本部分检索标识符ih2bj24l46bkgt558qsef04jeq下的字符串statepoolId。那么,如何在HTML中找到这个脚本并使用casperjs获取字符串呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-23 20:14:57

访问window.sawXmlIslandidClientStateXml

这是页面中的一个脚本元素,它向全局范围添加了一个变量,因此您可以通过casper.evaluate访问它。

代码语言:javascript
运行
复制
casper.then(function(){
    var sawXmlIslandidClientStateXml = casper.evaluate(function(){
        return window.sawXmlIslandidClientStateXml;
    });
    // TODO: do something
});

sawXmlIslandidClientStateXml做一些事情

你可以

  • 执行简单的字符串操作,将字符串拆分成一个更易于管理的片段,这样可以更容易地自己解析,
  • 编写一个Regex匹配器来查找您要寻找的特定细节,或者
  • 使用DOMParser将字符串解析为XML,然后使用yourParsedDocument.querySelectoryourParsedDocument.evaluate分别通过CSS选择器或XPath表达式定位元素。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39108674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档