Necesito hacer clic en el elemento (desplegable) cargado por js y visible solo después de hacer clic en el elemento a continuación. Mi prueba de moka está lanzando:
ElementNotInteractableError: element not interactable¿Puede usted ayudar?
const { Builder, By, Key, until } = require('selenium-webdriver') const assert = require('assert') describe('test create node/folder', function(done) { this.timeout(30000) let driver let vars beforeEach(async function() { driver = await new Builder().forBrowser('chrome').build() vars = {} }) afterEach(async function() { await driver.quit(); }) it('test name', async function() { await driver.get("https://testing-website.com/") // Some testing steps representing user behavior navigating the website await driver.findElement(By.css(".px-2 > .w-fit > .d-flex > .hover-visible > .hover-visible-el > .mx-2 > .ui-svg-inline")) await driver.findElement(By.css(".px-2 > .w-fit > .d-flex > .hover-visible > .hover-visible-el > .mx-2 > .ui-svg-inline")).click() // some steps after }) })¿Cómo simular un clic del mouse en el elemento y cargar el código debajo?
La respuesta es resumir el movimiento de la aspiradora del mouse de la siguiente manera:
await driver.wait(until.elementLocated(By.css(".px-2 > .w-fit > .d-flex > .hover-visible > .hover-visible-el > .mx-2 > .ui-svg-inline")), 30000) { const hoverLocation = await driver.findElement(By.css(".px-2 > .w-fit > .d-flex > .hover-visible > .hover-visible-el > .mx-2 > .ui-svg-inline")); const actions = driver.actions({ bridge: true }); await actions.move({origin: hoverLocation}).perform(); }