Цените, если кто-то может помочь
При рассмотрении этой проблемы и поиске вокруг не было получено результата, касающегося модального диалога кукловода. Поэтому я изо всех сил пытаюсь определить, какой путь выбрать.
модальное диалоговое окно
Это модальное диалоговое окно появляется при нажатии на:
await frame.click ("ul#P11_MAIN_CONTAINER_cards a:nth-child(1) > span")
This oracle Apex dialog.modal не имеет идентификатора или имени, только sr c. Я не могу получить доступ к элементам в этом диалоговом / модальном.
Интересно, есть ли у вас какие-либо рекомендации по этому типу проблемы, кроме того, как кукловод удовлетворяет этот тип "всплывающих окон"
contentFrame [0] является действительным contentFrame 2 действителен на базовой странице.
не удалось получить iframe внутри диалога / модального
это oracle модальное диалоговое окно вершины появляется после щелчка и, таким образом, блокирует кукловода, так как же go обрабатывает диалог / модальное ? popup?
Требуется ли для этого метод targetcreated
? если да, то как работает созданная цель в этой части?
или для новой вкладки (как показано ниже) требуется const page2 = await browser.newPage();
?
tabindex="-1" role="dialog" class="ui-dialog ui-corner-all ui-widget ui-widget-content ui-front ui-dialog--apex t-Dialog--wizard ui-draggable ui-resizable" aria-describedby="apex_dialog_1" aria-labelledby="ui-id-1" style="position: fixed; height: 90%; width: 90%; top: 5%; left: 5%; max-width: 100%;">.........
Спасибо, если кому-то есть, чем поделиться.
const puppeteer = require('puppeteer')
const config = require('../lib/config')
const homePage = require('../pages/HomePage')
const homePageObjects = require('../pageObjects/homePageObjects')
const loginPage = require('../pages/LoginPage')
const helper = require('../lib/helper')
describe('Home Menu Tests',() => {
let browser
let page
before(async function(){
browser = await puppeteer.launch({
ignoreHTTPSErrors: true,
headless:config.isHeadless,
slowMo:config.slowMo,
devtools:config.isDevtools,
timeout:config.launchTimeout,
Args: ['--disable-notifications','--disable-web-notification-custom-layouts'
,'--user-data-dir=/home/aspats3/ess/profile','--disable-features=site-per-process' ],
executablePath:'/usr/bin/google-chrome-stable',
})
page = await browser.newPage()
page.setDefaultNavigationTimeout(0);
await page.setDefaultTimeout(config.waitingTimeout)
await page.setViewport({
width:config.viewRepotWidth,
height:config.viewRepotHeight,
})
await helper.loadUrl(page,config.baseUrl);
await loginPage.Login(page,'AB0001','concept');
})
//after(async function() {
// await homePage.Logout(page)
//await browser.close()
//})
it('Verify My Team - List ',async()=>{
await page.reload({ waitUntil: ["networkidle0", "domcontentloaded"] });
await helper.hover(page,homePageObjects.homeMenu);
await page.waitFor(3000);
await helper.clickX(page,"//a[@id='WJ2000']");
await page.waitForNavigation({ waitUntil: ["networkidle0", "domcontentloaded"] });
await page.waitFor(8000);
//await helper.shouldExistX (page,"//*[contains(.,'Team Details')]")
//await helper.shouldExistX (page,"//*[contains(.,'Management')]")
//await helper.shouldExistX (page,"//*[contains(.,'Leave')]")
//await helper.shouldExistX (page,"//*[contains(.,'Timesheets')]")
await page.waitForSelector('iframe');
await page.waitForSelector('#P1_IFRAME')
console.log('childFrames count:', page.mainFrame().childFrames().length);
console.log('pageFrames count:', page.frames().length);
const iframeHandles = await page.$$('iframe');
console.log('contentFrame[0] is valid:', await iframeHandles[0].contentFrame() !== null);
console.log('contentFrame[1] is valid:', await iframeHandles[1].contentFrame() !== null);
const elementHandle = await page.$('div#P1_LAUNCHER iframe');
const frame = await elementHandle.contentFrame();
await page.waitFor(8000);
const newPagePromise = new Promise(x => browser.on('targetcreated', target => x(target.frame())));
await frame.click ("ul#P11_MAIN_CONTAINER_cards a:nth-child(1) > span") click this for dialog modal iframe
await frame.waitForNavigation({ waitUntil: ["networkidle0", "domcontentloaded"] });
await page.waitFor(20000);
// from here on cant get into dialog modal iframe ( nested iframe )
//`