gpt4 book ai didi

java - 切换帐户时的 Selen 身份验证

转载 作者:太空宇宙 更新时间:2023-11-04 10:32:11 25 4
gpt4 key购买 nike

首先,我想为我的英语道歉,我会尽力尽可能清晰。

我在 Java 中遇到了 Selenium 的问题。事实上,我使用一个门户,我需要登录才能浏览它。每次我打开此门户时,我都必须连接,会出现一个弹出窗口。我必须使用特定帐户执行特定操作,然后必须断开与该帐户的连接并重新连接另一个帐户来管理某些事情。我可以使用“Enter”键关闭与机器人单击“断开连接”按钮时出现的弹出窗口。然后,我就被屏蔽了。窗口消失了,好吧,但是程序崩溃了,并告诉我这个错误:“存在模式对话框:需要确认 - 确认门户的结构?”到了这一步之后,我就再也无法打开传送门了。我还有一个连接问题,实际上浏览器会提醒我的用户名和密码,但我需要更改帐户。所以我想到了删除cookies。我有点失落。

我的代码是:

        driver.findElement(By.id("disconnectBtn")).click();
WaitUtils.waitFor(5000);
Robot r = new Robot();
r.keyPress(KeyEvent.VK_ENTER);


WaitUtils.waitFor(5000);


driver.manage().deleteAllCookies();
System.out.println("I have deleted cookies.");


allerSurPortail("L1", driver);
System.out.println("I have opened a second time the portal.");
accueilPortailPage.fermerFrame(driver);
WaitUtils.waitFor(5000);

我的功能“fermerFrame”允许关闭当我连接到网站时出现的弹出窗口,它可以工作。

恢复:

  • 我的程序打开门户,其中显示一个用于连接的弹出窗口。
  • 连接后,我必须在网站上执行一些操作(测试时我不会执行的操作)
  • 我点击断开连接按钮,出现此弹出窗口 Disconnect pop-up window
  • 我创建了一个机器人来按 Enter 按钮来关闭此弹出窗口,因此关闭整个浏览器。这里我有这个错误Error Message (是对焦问题吗?)
  • 我想再次打开门户并使用另一个登录名进行连接

我试图捕获这个Error Message ,但我不明白为什么它仍然崩溃,并且它没有进入捕获..

        driver.findElement(By.id("disconnectBtn")).click();

try {
System.out.println("Entering in the first try");
Robot r = new Robot();
r.keyPress(KeyEvent.VK_ENTER);
} catch (org.openqa.selenium.UnhandledAlertException f) {
try {
System.out.println("Entering in the second try");
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
System.out.println("Alert data: " + alertText);
alert.accept();
Robot r = new Robot();
r.keyPress(KeyEvent.VK_ENTER);
} catch (NoAlertPresentException e) {
System.out.println("Entering in the second catch");
e.printStackTrace();
}
}

提前谢谢您。

最佳答案

如果在单个测试用例中使用两个不同的凭据集,最好为第二次登录打开新的匿名窗口:

Robot rob = new Robot();                          
rob.keyPress(KeyEvent.VK_CONTROL);
rob.keyPress(KeyEvent.VK_SHIFT);
rob.keyPress(KeyEvent.VK_P);
rob.keyRelease(KeyEvent.VK_CONTROL);
rob.keyRelease(KeyEvent.VK_SHIFT);
rob.keyRelease(KeyEvent.VK_P);
ArrayList<String> windows = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(windows.get(1));

关于java - 切换帐户时的 Selen 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49880807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com