Javascript 如何修复Youtube API的getPlayerState以返回int值?

Javascript 如何修复Youtube API的getPlayerState以返回int值?,javascript,python,selenium,youtube-api,youtube-javascript-api,Javascript,Python,Selenium,Youtube Api,Youtube Javascript Api,错误: selenium.common.exceptions.JavascriptException:消息:javascript错误:无法读取null的属性“getPlayerState” 或 消息:javascript错误:getPlayerState不是函数 HTML代码: <div id="movie_player"></div> 理想情况下,我希望getPlayerState()将播放器的状态返回为-1、0、1、2、3、4、5,这将允许我继续执行下一步。如果状态

错误:

selenium.common.exceptions.JavascriptException:消息:javascript错误:无法读取null的属性“getPlayerState”

消息:javascript错误:getPlayerState不是函数

HTML代码:

<div id="movie_player"></div>
理想情况下,我希望getPlayerState()将播放器的状态返回为-1、0、1、2、3、4、5,这将允许我继续执行下一步。如果状态代码为0(或已完成),则使用selenium.execute_脚本加载下一首歌曲,并从Python脚本加载videoId

编辑:键入console.log(player.getPlayerState())打印播放器的实际值。因此getPlayerState()是一个函数

<script src="http://www.youtube.com/player_api"></script>

<script>
// create youtube player
var player;
var video_id = 'qCTMq7xvdXU';
let player_vars = {"playsinline": 1, "origin": "https://www.youtube.com"}
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('movie_player', {
      height: '390',
      width: '640',
      videoId: 'M7lc1UVf-VE',
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
      }
    });
  }

  // 4. The API will call this function when the video player is ready.
  function onPlayerReady(event) {
    event.target.playVideo();
  }

  // 5. The API calls this function when the player's state changes.
  //    The function indicates that when playing a video (state=1),
  //    the player should play for six seconds and then stop.
  var done = false;
  function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING && !done) {
      setTimeout(stopVideo, 6000);
      done = true;
    }
  }
  function stopVideo() {
    player.stopVideo();
  }
function cueVideo(url) {
    player.cueVideoByUrl(url);
    }
function VideoReady(id) {
    player.loadVideoById(id);
}
self.driver.execute_script(
                "ytplayer = document.getElementById('player');")
            player_status = self.driver.execute_script(
                "return ytplayer.getPlayerState();")
            print(player_status)