Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

swithTo/within not swith to iframe #4414

Open
aShelist opened this issue Jun 28, 2024 · 1 comment
Open

swithTo/within not swith to iframe #4414

aShelist opened this issue Jun 28, 2024 · 1 comment
Labels

Comments

@aShelist
Copy link

aShelist commented Jun 28, 2024

What are you trying to achieve?

After update codeceptjs, I can't get input in iframe. I just try using switchTo and within. My code work on codecept 3.4.1

What do you get instead?

Provide console output if related. Use --verbose mode for more details.

      I wait for visible "[data-marker=new-card]", 5
      I click "[data-marker=new-card]"
      I wait for element "[data-marker=iframe]", 5
      I switch to "[data-marker=iframe]"
      I wait for element "[id=pan]", 5
      › [Browser:Warning] 
    [1]  Error (Non-Terminated) | Error: element ([id=pan]) still not present on page after 5 sec
Waiting for selector `[id=pan]` failed: Waiting failed: 5000ms exceeded | (err) => { step.status = 'failed'; step.endTime = ...
    [1] Error | Error: element ([id=pan]) still not present on page after 5 sec
Waiting for selector `[id=pan]` failed: Waiting failed: 5000ms exceeded undefined...
    [1] <teardown>  Stopping recording promises

...
     Error: element ([id=pan]) still not present on page after 5 sec
Waiting for selector `[id=pan]` failed: Waiting failed: 5000ms exceeded

Provide test source code if related

    await I.waitForElement(this.iframe, FRONT_TIMEOUT_SEC);
    await I.switchTo(this.iframe);
    await I.waitForElement(this.cardNumberInput, FRONT_TIMEOUT_SEC);
    await I.waitForVisible(this.cardNumberInput, FRONT_TIMEOUT_SEC);
    await I.fillField(this.cardNumberInput, creditCard.cardNumber);
    await I.fillField(this.expDateInput, creditCard.expDate);
    await I.fillField(this.cvcInput, creditCard.cvv);
    await I.switchTo();

Details

  • CodeceptJS version: 3.6
  • NodeJS Version: 18.16.1
  • Operating System: mac os
  • puppeteer || webdriverio || testcafe version (if related)
  • Configuration file:
exports.config = {
  fullPromiseBased: true,
  tests: testsPath,
  output: `${pwd}/output`,
  bootstrap: () => {
    global.codecept_dir = pwd;
  },
  name: 'xxx',
  helpers: {
    Puppeteer: {
      show: true,
      waitForNavigation: 'networkidle2',
      waitForTimeout: 30000,
      getPageTimeout: 30000,
      windowSize: '1000x1000',
      browser: 'chrome',
      chrome: {
        args: ['--no-sandbox',
          '--window-size=1920,1000',
          '--disable-setuid-sandbox',
          '--disable-web-security',
          // workaround for iframe in {headless: false} mode,
          // see details https://github.com/puppeteer/puppeteer/issues/4964
          '--disable-features=site-per-process',
        ],
        devtools: false,
      },
      manualStart: false,
      restart: false,
      keepCookies: true,
      keepBrowserState: false,
    },
    FileSystem: {},
  },
  plugins: {
    screenshotOnFail: {
      enabled: false,
    },
    retryTo: {
      enabled: true
    },
    tryTo: {
      enabled: true,
      require: ''
    }
  },
  require: ['ts-node/register'],

};
Copy link

This issue is stale because it has been open for 90 days with no activity.

@github-actions github-actions bot added the stale label Sep 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant