Selenium:获取Tableau vi中的所有可见文本

2024-04-28 23:47:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Selenium从一个Tableau视图获取所有可见文本。我将所有可见文本定义为可以使用任何浏览器的搜索功能(即Ctrl+F)进行搜索的任何文本。在

我已经搜索了许多其他相关问题的答案,但没有一个对我的案件有效。我试了一下here的最上面的答案。它从一开始就不适合我,因为我的browser.page_source不包含可见文本。以下是我的browser.page_source的内容:

<!DOCTYPE html><html xmlns:ng="" xmlns:tb=""><head><style type="text/css">@charset "UTF-8";[ng\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=1024, maximum-scale=1.3"><meta name="apple-itunes-app" content="app-id=434633927"><meta name="format-detection" content="telephone=no"><script>var BuildId = '9qu3thidy901n388pewixusor';
var StaticAssetsUrlPrefix = '';</script><link rel="stylesheet" type="text/css" href="vizportal.css?9qu3thidy901n388pewixusor"><script src="/javascripts/api/tableau-2.1.0.min.js?9qu3thidy901n388pewixusor"></script><script src="vizportalMinLibs.js?9qu3thidy901n388pewixusor"></script><script src="vizportal.min.js?9qu3thidy901n388pewixusor"></script></head><body class="tb-body"><div ng-app="VizPortalRun" id="ng-app" tb-window-resize="" class="tb-app ng-scope"><!-- uiView:  --><div ui-view="" class="tb-app-inner ng-scope"></div><span class="ng-isolate-scope"><div class="tb-toaster tb-enable-selection" data-reactid=".0"></div></span><script type="text/ng-template" id="inline_stackedElement.html"><div tb-window-resize tb-left="left" tb-top="top" tb-right="right" tb-bottom="bottom" tb-visible="visible" class="tb-absolute"></div></script><!-- ngRepeat: stackedElement in stackedElements --><span props="stackedComponentsProps" class="ng-isolate-scope"><div data-reactid=".1"></div></span></div></body></html>

也尝试了顶部答案here。显然,这并不起作用,因为在上面的页面源代码中,body中没有文本。在

在这种情况下,正确的获取可见文本的方法是什么?在


Tags: 答案文本divapphtmlscriptbodycontent
1条回答
网友
1楼 · 发布于 2024-04-28 23:47:16

正如我一直说的pages_source获取源代码,但并不相同,Inspect Element检查{a1},源页面虽然实际上是{a1}的原始种子页,^{}可以动态更改,通常通过JS代码进行更改, 有时相当戏剧化。您还将注意到Inspect Element显示了源代码没有显示的阴影元素。

要了解差异有多大,请访问chrome://settings/并单击Inspect element,然后查看{}并进行比较。

因此,您需要从^{}获取所需的内容,这样您就可以遍历所有标记并得到textContent 以下是JS片段:

page =""; var all = document.getElementsByTagName("*"); for (tag of all) page = page + tag.textContent; 

或者在selenium/python中:

^{pr2}$

enter image description here

相关问题 更多 >