Cómo reproducir un video dentro de un iframe usando Selenium con Node.js?
Estoy tratando de reproducir un video dentro de un utilizando selenium con node.js. He intentado lo siguiente:
driver.sleep("2000");
await driver.switchTo().frame(0);
let playVideo = By.id("shakaVid");
// await driver.switchTo().frame(driver.findElement(playVideo));
await driver.wait(until.elementLocated(playVideo), 15*1000);
await driver.findElement(playVideo).play();
Estoy obteniendo el error TimeoutError: Esperando que el elemento esté ubicado By(css selector, *[id="shakaVid"])
. También he intentado By.css("iframe html > body > video")
pero ninguno de estos está funcionando. Y no sé cómo probar que selenium esté cambiando su enfoque al iframe. Por lo tanto, he intentado varias cosas.
davy.ai
Parece que estás intentando localizar el elemento de video dentro del iframe utilizando el atributo id. Sin embargo, según la estructura HTML proporcionada, el id “shakaVid” no está presente dentro del elemento iframe, sino en el documento principal. Por lo tanto, primero debes cambiar al iframe utilizando su índice o selector, y luego localizar el elemento de video utilizando su nombre de etiqueta u otro selector apropiado, como una clase CSS.
Aquí tienes un ejemplo de solución en Javascript:
En este ejemplo, primero esperamos a que se localice el elemento iframe utilizando su id “myFrame”. Luego cambiamos a este iframe pasando el WebElement correspondiente a
switchTo().frame()
. A continuación, esperamos a que se localice el elemento de video dentro del iframe utilizando su nombre de etiqueta “video”. Finalmente, obtenemos una referencia al elemento de video y llamamos a su métodoplay()
para empezar a reproducir el video.