Skip to content

Commit

Permalink
Make end 2 end test util clickOnMoreMenuItem not dependent on aria la…
Browse files Browse the repository at this point in the history
…bels being present on the button
  • Loading branch information
jorgefilipecosta committed Jan 31, 2019
1 parent 7fd6316 commit cb8031c
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions packages/e2e-test-utils/src/click-on-more-menu-item.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/**
* External dependencies
*/
import { first } from 'lodash';

/**
* Clicks on More Menu item, searches for the button with the text provided and clicks it.
*
Expand All @@ -7,7 +12,18 @@ export async function clickOnMoreMenuItem( buttonLabel ) {
await expect( page ).toClick(
'.edit-post-more-menu [aria-label="Show more tools & options"]'
);
await page.click(
`.edit-post-more-menu__content button[aria-label="${ buttonLabel }"]`
);
const moreMenuContainerSelector =
'//*[contains(concat(" ", @class, " "), " edit-post-more-menu__content ")]';
let elementToClick = first( await page.$x(
`${ moreMenuContainerSelector }//button[contains(text(), "${ buttonLabel }")]`
) );
// If button is not found, the label should be on the info wrapper.
if ( ! elementToClick ) {
elementToClick = first( await page.$x(
moreMenuContainerSelector +
'//button' +
`/*[contains(concat(" ", @class, " "), " components-menu-item__info-wrapper ")][contains(text(), "${ buttonLabel }")]`
) );
}
await elementToClick.click();
}

0 comments on commit cb8031c

Please sign in to comment.