Rav*_*avi 2 html selenium html-parsing jsoup selenium-webdriver
我正在尝试在包含文本的页面上选择一个脚本标签
Document doc=jsoup.parse(somehtml);
Elements ele=doc.select("script:contains(accountIndex)");
Run Code Online (Sandbox Code Playgroud)
页面上脚本标签的代码是
<script>(function() {var vm = ko.mapping.fromJS({
"accountIndex": 1,
"accountNumber": "*******",
"hideMoreDetailsText": "Hide More Details",
"viewAccountNumberText": "Show Account Number",
"hideAccountNumberText": "Hide Account Number",
});window.AccountDetails = vm;})();</script>
Run Code Online (Sandbox Code Playgroud)
如果我传递脚本标签的 css 定位器,我就可以选择这个脚本标签
Elements ele=doc.select("body > script:nth-child(44)");
Run Code Online (Sandbox Code Playgroud)
页面上有很多脚本标签,所以第二种方法不是通用的。将来可能会改变。
有人可以告诉我第一种方法的问题是什么。因为我可以在页面上选择包含 jsoup 的其他标签
选择器:contains(text)查找具有该文本值的元素。脚本没有文本,它有数据(否则 JS 将在浏览器中可见)。您可以改用:containsData(data)选择器。
例如:
Elements els = doc.select("script:containsData(accountIndex)");
Run Code Online (Sandbox Code Playgroud)
这是一个例子。在选择文件已全部处理的查询类型(这不只是严格的CSS)。
| 归档时间: |
|
| 查看次数: |
1231 次 |
| 最近记录: |