2017-08-22 21 views
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() 

Tried Explicitも同様に待機しますが、条件は一致しません。

+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()worked :) – UnknownN

関連する問題