Lors de l'écriture de tests E2E avec Selenium, je rencontre parfois des pseudo-éléments (:: before
ou :: after
) et j'ai des problèmes.
Le problème est que ces pseudo-éléments sont des ** pseudo - ** éléments utilisés dans CSS et ne peuvent pas être falsifiés directement à partir du pilote Web de Selenium. En d'autres termes, même si vous souhaitez cliquer, vous ne pouvez pas cliquer directement sur le pseudo élément. (Le code ci-dessous est Selenide.)
Essayez de cliquer sur un pseudo élément
$("button::before").click(); //Je ne peux pas cliquer!
Ensuite, comment cliquer est de cliquer sur chaque élément, y compris le pseudo élément.
Tente de cliquer sur un élément contenant un pseudo-élément
$("button").click();
Espérons que cela fonctionne, mais cela échoue car les éléments contenant les pseudo-éléments sont invisibles dans le passé. Dans un tel cas, cela ne peut pas être aidé, mais il n'y a pas d'autre choix que de spécifier l'emplacement sur le navigateur dans l'ad hoc et cliquez comme suit.
Cliquez sur l'élément qui contient le pseudo élément
Actions actions = new Actions(WebDriverRunner.getWebDriver());
actions.click($("button")).build().perform();
//Les gens qui veulent déplacer le lieu encore plus finement
actions.moveToElement($("button"), xOffset, yOffset).click().build().perform();
https://developer.mozilla.org/ja/docs/Web/CSS/Pseudo-elements https://stackoverflow.com/questions/45427223/click-on-pseudo-element-using-selenium https://www.quora.com/How-do-I-locate-After-and-Before-css-tag-in-selenium-webdriver
Recommended Posts