python
  • selenium-webdriver
  • youtube-iframe-api
  • 2017-08-22 67 views 0 likes 
    0

    我有一个拥有YouTube的iframe的网站。我想在视频结束后点击重播按钮。我切换到youtube iframe并找到播放按钮。但是,如何使用硒(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() 
    

    试过显式等待,但条件不匹配。

    +1

    请补充一点,你写的所有相关的代码。 – DyZ

    +0

    你能展示你尝试过的明确的等待吗? –

    +0

    请添加您需要等待的完整代码和时间? – iamsankalp89

    回答

    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

    +1

    非常感谢.. time.sleep()工作:) – UnknownN

    相关问题