我一直在尝试通过selenium选择Spotify网络播放器上的播放按钮进行一系列测试,但无法成功定位。我已经尝试过 CSS Selector :
driver.find_element_by_css_selector("#header .button-primary").click()
和 xpath :
driver.find_element_by_xpath("//button[@class=\"button-primary\"]")
这是我的错误调用堆栈:
回溯(最近一次呼叫最后一次):文件" Spotify Dumbass.py",line 37,在test_spotify_dumbass中 driver.find_element_by_css_selector(" #header .button-primary")。click()文件 " /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py" ;, 第396行,在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" ;, 第684行,在find_element中 {'使用':by,' value':value})[' value'] File" /Library/Frameworks/Python.framework/Versions/ 2.7 / LIB / python2.7 /站点包/硒/ webdriver的/远程/ webdriver.py&#34 ;, 第195行,执行中 self.error_handler.check_response(response)File" /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", 第170行,在check_response中 raise exception_class(message,screen,stacktrace)NoSuchElementException:消息:无法找到元素: {"方法":" css选择器","选择器":" #header .button-primary"} 堆栈跟踪: 在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++++TITI-/Tmp-/tmpSLKAhJ/extensions/fxdriver@googlecode.com/components/driver-component的.js:603)
答案 0 :(得分:2)
" play"按钮位于iframe 中,在找到元素之前切换到它:
driver.switch_to.frame("app-player")
play = driver.find_element_by_id("play-pause")
play.click()