Tester un clique sur un sous-menu de WordPress via Codeception/wp-browser

ParJohan Maïa

Tester un clique sur un sous-menu de WordPress via Codeception/wp-browser

Problématique

Lorsque l´on veut vérifier si le lien est correcte dans le menu WordPress via Codeception, on se trouve face à un petit soucis : les sous-menus ne sont pas visibles sauf si on a cliqué sur le lien du menu (lien parent).

Tentatives

    1. Tenter en sélectionnant directement le libellé du sous-menu comme ceci :
      $I->click('All Posts'); ça ne marche pas, car le lien n´est pas visible.
    2. Tenter avec XPath ce qui donne : $I->click( 'All Posts' , \Codeception\Util\Locator::elementAt('//li[@id=menu-posts]/ul/li/a', 0 ) ); ça ne marche pas non plus, sans doute aussi pas le manque de visibilité.
    3. Utiliser le positionnement de la souris mais ça semble un peu l´usine à gaz, et le menu peut-être en mode seulement d´icônes…  bref, c´est compliqué.

Solution

La solution à la fois simple et efficace et d´afficher via jquery le sous-menu pour cliquer ensuite dessus. Voici le test complet :

public function it_should_go_to_posts_page( AcceptanceTester $I ){    
    $I->loginAsAdmin();    
    $I->executeJS( 'jQuery("li#menu-posts > ul").css( { top: "0" } );' );    
    $I->click('All Posts');     
    $I->seeCurrentUrlEquals( "/wp-admin/edit.phps" );
}

 

 

À propos de l’auteur

Johan Maïa administrator

Laisser un commentaire