Selenium Python获取<script>标签信息?

时间:2018-05-18 14:10:18

标签: javascript python selenium selenium-webdriver selenium-chromedriver

我正在尝试在标记内部获取信息。

&#xA;&#xA;
 &lt; script type =“text / javascript”&gt; INFO&lt; / script&gt;&#xA;  
&#xA;&#xA;

更具体地说:

&#xA;&#xA;
  &lt;!DOCTYPE html&gt;&#xA;&lt; html lang =“en”class =“js logged-in client-root”&gt;&#xA;&lt; head&gt; ...&lt; / head&gt;&#xA ;&lt; body class style =“position:fixed; top:-265px; width:100%;”&gt;&#xA; &lt; span id =“react-root”aria-hidden =“true”&gt; ...&lt; / span&gt;&#xA; &lt; script type =“text / javascript&gt;这是我想要的标签。&lt; / script&gt;&#xA;&lt; script type =”text / javascript&gt; &#XA;窗口.__ initialDataLoaded(window._sharedData); &lt; / script&gt;&#xA; ...&#xA;  
&#xA;&#xA;

我正在尝试这个但没有运气:

&#xA ;&#xA;
  browser = webdriver.Chrome()&#xA; info = browser.find_element_by_xpath(“// script [@ type ='text / javascript']”)&#xA; print( info.text)//什么都不打印&#xA;  
&#xA;

1 个答案:

答案 0 :(得分:1)

似乎这是预期的行为。见here

  

这是正常的。 WebElement#getText会返回用户的可见文本   可以看到。用户无法在<script>标记中看到文字,因此getText不会返回该文字。   您仍然可以通过JavaScript

访问代码的内容

所以你必须做这样的事情:

info.get_attribute('innerHTML')