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

dor*_*hin 8 javascript python selenium selenium-chromedriver selenium-webdriver

我正在尝试获取标签内的信息。

<script type="text/javascript"> INFO </script>
Run Code Online (Sandbox Code Playgroud)

进一步来说:

<!DOCTYPE html>
<html lang="en" class="js logged-in client-root">
<head>...</head>
<body class style ="position: fixed; top: -265px; width: 100%;">
  <span id="react-root" aria-hidden="true">...</span>
  <script type="text/javascript> This is the tag i want. </script>
  <script type="text/javascript> 
     window.__initialDataLoaded(window._sharedData); </script>
...
Run Code Online (Sandbox Code Playgroud)

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

browser = webdriver.Chrome()
info = browser.find_element_by_xpath("//script[@type='text/javascript']")
print(info.text) //prints nothing
Run Code Online (Sandbox Code Playgroud)

Rol*_*ruz 8

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

这工作正常。 WebElement#getText返回用户可以看到的可见文本。用户无法看到<script>标签中的文本,因此它不会由 返回getText。您仍然可以通过 JavaScript 访问标签的内容

所以你将不得不做这样的事情:

info.get_attribute('innerHTML')
Run Code Online (Sandbox Code Playgroud)