我有一个有youtube iframe的网站。我想在视频结束后点击重播按钮。我切换到youtube iframe并找到了播放按钮。但是如何使用selenium(python)在特定时间段(如视频结束后)点击它。这里要点击的元素始终可用,但我需要在特定时间后点击它。
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@id='YTPlayer']"))
driver.implicitly_wait(10000)
driver.find_element_by_css_selector(".ytp-play-button.ytp-button").click()
尝试显式等待,但条件不匹配。
答案 0 :(得分:0)
隐式等待告诉WebDriver在尝试查找不能立即可用的任何元素(或多个元素)时轮询DOM一段时间。默认设置为0.设置后,将为WebDriver对象的生命周期设置隐式等待。
这可能不是您想要的,因为您的元素始终可用。
相反,您可以在代码中运行time.sleep()。
像这样:
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@id='YTPlayer']"))
time.sleep(1)
driver.find_element_by_css_selector(".ytp-play-button.ytp-button").click()
然而,您应该尝试找到需要满足的条件,然后单击按钮。
示例:
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@id='YTPlayer']"))
while True:
if your-condition:
driver.find_element_by_css_selector(".ytp-play-button.ytp-button").click()
break
time.sleep(1)
您还可以使用此处所述的显式等待:http://selenium-python.readthedocs.io/waits.html