CodeceptJS icon indicating copy to clipboard operation
CodeceptJS copied to clipboard

Playwright: WebKit: TypeError: $XPath is not a function. (In '$XPath(null, locator)', '$XPath' is "function $XPath(element, selector)

Open olgabenchuk24 opened this issue 1 year ago • 1 comments

Hello everyone,

I'm currently using codecept js Playwright(1.49.1) for testing and have the following code to click a button with a specific text:

I.waitForEnabled(locate('.RadioButton-caption').withText(`${option}`));
I.click(locate('.RadioButton-caption').withText(`${option}`));

I am running the test in WebKit, but I’m encountering the following error:

     element ({xpath: .//*[contains(concat(' ', normalize-space(./@class), ' '), ' RadioButton-caption ')][contains(., 'olyattest')]}) still not enabled after 10 sec
page.waitForFunction: TypeError: $XPath is not a function. (In '$XPath(null, locator)', '$XPath' is "function $XPath(element, selector) {
  const found = document.evaluate(selector, element || document.body, null, 5, null);
  const res = [];
  let current = null;
  while (current = found.iterateNext()) {
    res.push(current);
  }
  return res;
}")

It looks like I.waitForEnabled does not support xpath when running in webkit using playwright. Could you please fix it?

Thank you!

olgabenchuk24 avatar Jan 17 '25 11:01 olgabenchuk24

It seems to be the same issue as https://github.com/codeceptjs/CodeceptJS/issues/2913#issuecomment-2029372807

mirao avatar Jan 21 '25 11:01 mirao