customLocator
Creates a custom locator by using special attributes in HTML.
If you have a convention to use data-test-id or data-qa attributes to mark active elements for e2e tests,
you can enable this plugin to simplify matching elements with these attributes:
// replace this:I.click({ css: '[data-test-id=register_button]');// with this:I.click('$register_button');This plugin will create a valid XPath locator for you.
Configuration
Section titled “Configuration”enabled(default:false) should a locator be enabledprefix(default:$) sets a prefix for a custom locator.attribute(default:data-test-id) to set an attribute to be matched.strategy(default:xpath) actual locator strategy to use in query (cssorxpath).showActual(default: false) show in the output actually produced XPath or CSS locator. By default shows custom locator value.
Examples:
Section titled “Examples:”Using data-test attribute with $ prefix:
// in codecept.conf.jsplugins: { customLocator: { enabled: true, attribute: 'data-test' }}In a test:
I.seeElement('$user'); // matches => [data-test=user]I.click('$sign-up'); // matches => [data-test=sign-up]Using data-qa attribute with = prefix:
// in codecept.conf.jsplugins: { customLocator: { enabled: true, prefix: '=', attribute: 'data-qa' }}In a test:
I.seeElement('=user'); // matches => [data-qa=user]I.click('=sign-up'); // matches => [data-qa=sign-up]Using data-qa OR data-test attribute with = prefix:
// in codecept.conf.jsplugins: { customLocator: { enabled: true, prefix: '=', attribute: ['data-qa', 'data-test'], strategy: 'xpath' }}In a test:
I.seeElement('=user'); // matches => //*[@data-qa=user or @data-test=user]I.click('=sign-up'); // matches => //*[data-qa=sign-up or @data-test=sign-up]// in codecept.conf.jsplugins: { customLocator: { enabled: true, prefix: '=', attribute: ['data-qa', 'data-test'], strategy: 'css' }}In a test:
I.seeElement('=user'); // matches => [data-qa=user],[data-test=user]I.click('=sign-up'); // matches => [data-qa=sign-up],[data-test=sign-up]Parameters
Section titled “Parameters”config