swithTo/within not swith to iframe
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 35/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 停滯
- 技術堆疊
- javascript, nodejs
- 領域
- testing-qa
研究方向
首先在 CodeceptJS 3.6 中重現所提供的 Puppeteer 流程,重點關注使用所提供 iframe 選擇器的 switchTo、within 和 waitForElement。將行為與 CodeceptJS 3.4.1 進行比較,並在隔離出失敗原因後新增回歸覆蓋;完成的標準是 iframe 輸入選擇器能夠解析,且所提供的序列能夠完成。
由索引模型根據 Issue 內容生成。
描述
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
--verbosemode 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'],
};
- 主要語言
- JavaScript
- 星號
- 4.2k
- 分支
- 756
- 平均合併
- 2 天 10 小時
- 30 天內合併 PR
- 18
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
codeceptjs/CodeceptJS 的其他 Issue
-
stale
難度 2/5 1-3 小時 新手友好度 72/100
codeceptjs/CodeceptJS#5420 · 1 則留言 ·
-
stale
難度 2/5 1-3 小時 新手友好度 76/100
codeceptjs/CodeceptJS#5358 · 1 則留言 ·
-
stale
難度 2/5 1-3 小時 新手友好度 78/100
codeceptjs/CodeceptJS#4958 · 10 則留言 · 2 個 reaction ·
-
stale
難度 1/5 1 小時以內 新手友好度 72/100
codeceptjs/CodeceptJS#4778 · 3 則留言 ·
-
stale
難度 4/5 3-5 天 新手友好度 38/100
codeceptjs/CodeceptJS#5618 · 1 則留言 ·
查看 codeceptjs/CodeceptJS 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 70/100
-
難度 2/5 1-3 小時 新手友好度 75/100
mksglu/context-mode#1200 ·
-
難度 2/5 1-3 小時 新手友好度 75/100
neondatabase/website#5944 ·
-
module: core
難度 2/5 1-3 小時 新手友好度 75/100
bigbluebutton/bigbluebutton#25849 ·
-
難度 2/5 1-3 小時 新手友好度 75/100
jaegertracing/jaeger-ui#4506 ·