Spotify 网络播放器:Select 元素 'Play' 带有/硒的按钮

Spotify Webplayer: Select Element 'Play' Button w/ Selenium

我一直在尝试通过 selenium select Spotify 网络播放器上的 Play 按钮进行一系列测试,但一直无法成功定位它。我试过 CSS 选择器:

driver.find_element_by_css_selector("#header .button-primary").click()

xpath:

driver.find_element_by_xpath("//button[@class=\"button-primary\"]")

这是我的错误调用堆栈:

Traceback (most recent call last): File "Spotify Dumbass.py", line 37, in test_spotify_dumbass driver.find_element_by_css_selector("#header .button-primary").click() File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 396, in find_element_by_css_selector return self.find_element(by=By.CSS_SELECTOR, value=css_selector) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 684, in find_element {'using': by, 'value': value})['value'] File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 195, in execute self.error_handler.check_response(response) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 170, in check_response raise exception_class(message, screen, stacktrace) NoSuchElementException: Message: Unable to locate element: {"method":"css selector","selector":"#header .button-primary"} Stacktrace: at FirefoxDriver.prototype.findElementInternal_ (file:///var/folders/Ne/NepmGbBUFwK7TxfPj5g0gE+++TI/-Tmp-/tmpSLKAhJ/extensions/fxdriver@googlecode.com/components/driver-component.js:10299) at fxdriver.Timer.prototype.setTimeout/<.notify (file:///var/folders/Ne/NepmGbBUFwK7TxfPj5g0gE+++TI/-Tmp-/tmpSLKAhJ/extensions/fxdriver@googlecode.com/components/driver-component.js:603)

"play" 按钮在 iframe 中,在定位元素之前切换到它:

driver.switch_to.frame("app-player")
play = driver.find_element_by_id("play-pause")
play.click()

通过Javascript

控制

播放器有JS SDK吗?我可以使用 Javascript 发送 play/pause 命令吗?

播放按钮没有任何可观察的事件,也没有监听任何事件。播放只能由用户点击按钮触发。 我们当然在考虑创建一个 JS SDK;这是一个更大的项目,现在我们专注于快速发布 API 以打开一般的 Spotify 生态系统(目录、播放列表等)。 None 这些请求被置若罔闻,我们正在努力提供尽可能多的功能。

来自 Sptotify 的开发页面