gpt4 book ai didi

java - 使用 Selenium WD 处理 AngularJS 弹出窗口

转载 作者:行者123 更新时间:2023-12-01 10:35:00 25 4
gpt4 key购买 nike

下图显示了点击“随机用户”文本时出现的弹出窗口; WD 无法将焦点转移到您看到的弹出窗口。

Please check the picture here

下面是我使用的代码以及注释中的各种试用代码

public static void teardownAppRetrieveOnce() throws InterruptedException {
synchronized(obj){
obj.wait(2000);
driver.findElement(By.xpath(".//*[@id='sidebar']/nav/ul[2]/li[3]/button[1]/span/span")).click();
System.out.println("Clicked sidebar..");
obj.wait(2000);
String winHandleBefore = driver.getWindowHandle();
**driver.switchTo().window(winHandleBefore);
driver.switchTo().findElement(By.id(".//*[@id='logoutButton']")).click();**
***driver.switchTo().activeElement().findElement(By.id(".//*[@id='logoutButton']")).click();***
System.out.println("Clicked on logout");
obj.wait(2000);
driver.switchTo().alert().accept();
obj.wait(2000);
System.out.println("Logged out...");
}
}

请帮我澄清这样的弹出窗口是否意味着要处理一个单独的新窗口或框架?

注意:

  • ** 表示我尝试的第一个失败的解决方案
  • *** 表示我尝试的第二个解决方案也失败了

最佳答案

我在使用 WebDriver/AngularJS 时遇到了很多麻烦。有时,WebElement 的 native Selenium 方法可以工作 - 有时则不能。最好的解决方案是在网页上执行原始 Javascript。

我的情况是这样的:

driver.executeScript("$x(\".//*[@id='logoutButton']\")[0].click()");

关于java - 使用 Selenium WD 处理 AngularJS 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34811375/

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