处理 Galen 框架 JS 上的警报

Handle alerts on Galen framework JS

提问人:Andres David Ortega Lobo 提问时间:10/28/2023 最后编辑:Andres David Ortega Lobo 更新时间:10/28/2023 访问量:24

问:

我已经在 Galen 上开发了一段时间,但在处理测试警报时遇到了一堵墙。在这种情况下,在测试上执行几个步骤后,会弹出一个警报,需要身份验证才能继续测试。

我已经尝试过使用 driver.switchTo().alert(),但这根本不起作用。我能够使用 Java 函数在另一个项目中绕过它的唯一方法。现在,据我所知,这仅适用于 Java,我还没有在 Galen 上找到 JS 的任何替代方案。((HasAuthentication) webDriver).register(() -> new UsernameAndPassword("admin", "admin"));

这是我的 Galen 测试,我已经评论了出现警报的步骤。

有问题的警报:这里

谢谢!

// First, the pages document is loaded so the page elements can be used on the test
load("Pages\\ACloginPages.js");

// In this function, which is done before the test, the web page is loaded and the driver is created
beforeTest(function () {
    driver = createDriver("***", "2030x1140");
    session.put("driver", driver);
});

//Here the different viewports are declared and later used on the test
var devices = {
    mobile:{
        deviceName:"mobile",
        tags:["mobile"],    
        size: "500x844"
    },
    desktop:{
        deviceName:"desktop",
        tags:["desktop"],
        size:"1920x1080"
    },
    tablet:{
        deviceName:"tablet",
        tags:["tablet"],
        size:"820x1180"
    }
};

// On the test function, the web driver is executed and it navigates to the beta web page before 
// Executing the UI test, note that the viewports declared above are used here on the test.
forAll(devices, function(){
    test("My trips page on ${deviceName} final", function(device){
    var driver = session.get("driver");

    
    var legacyPage = new LegacyPage(driver);
    legacyPage.waitForIt("200s");
    
    legacyPage.betaButton.click();


    var loginPage = new LoginPage(driver);
    loginPage.waitForIt("200s");

    ** ALERT APPEARS HERE **
    loginPage.loginUser.typeText("[email protected]");
    loginPage.loginPassword.typeText("Abc@123456");
    loginPage.loginSubmit.click();
    GalenPages.sleep(15000);


    var flightsTab = new FlightsTab(driver);
    flightsTab.tripType.waitForIt("200s");
 
    ** ALERT APPEARS HERE **
    flightsTab.bookPoints.click();    
    flightsTab.tripType.click();
    GalenPages.sleep(5000);

    flightsTab.multicitySelect.click();
    flightsTab.tripClose.click();
    GalenPages.sleep(5000);

    flightsTab.add1Stopover.click();
    flightsTab.add2Stopover.click();
    GalenPages.sleep(3000);

    resize(driver, device.size);
    checkLayout(driver,"Gspecs\\HP-3444.gspec",device.tags);
    });
});


//After the test is donde the driver closes
afterTest(function() {
    var driver = session.get("driver");
    driver.quit();
});

















我尝试使用 chromedriver 警报阻止功能和 switchTo().alert() selenium 方法,但这些方法都不起作用。

javascript selenium-webdriver 自动测试 galen

评论

0赞 pguardiario 10/28/2023
这不是警报,听起来像是基本的身份验证。您可以尝试将其放在 url (user:pass@url) 中,如果这不起作用,我认为您必须切换到木偶师/剧作家
0赞 Andres David Ortega Lobo 10/30/2023
谢谢你的评论!我在加载页面时使用了这种方法进行初始身份验证,但是在测试期间,相同的消息会弹出不同的时间,尤其是在加载新页面时
0赞 pguardiario 10/31/2023
在剧作家中,你只需执行 page.authenticate({username, password}) - 我不认为硒有什么用。

答: 暂无答案