gpt4 book ai didi

java - 有没有办法禁用 Safari Webdriver Glass Pane

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

<小时/>

根据 Apple 的 Safari Webdriver Doc ,在运行自动化窗口时插入玻璃 Pane ,以防止在用于 Webdriver 测试时与浏览器交互。有没有办法禁用这个玻璃板?

背景信息:

我想禁用这个玻璃 Pane 的原因是我有一个 nginx 身份验证弹出窗口,我想关闭它。(像这样在 url 中注入(inject)身份验证 -> https://username:password@restofurl.com 甚至在 Safari 中都不起作用)。

Selenium 的 Webdriver 解决方案:

警报警报 = webDriver.switchTo().alert();
Alert.sendkeys(“无论什么”);//不起作用

所以我选择了一个不同的解决方案,即 AWT Robot,它在 Chrome 中运行良好,但由于 Glass Pane 而不能在 Safari 中运行:

try {
Robot robot = new Robot();
robot.mouseMove(820, 290);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
} catch(AWTException e) {
e.printStackTrace(); //Log exception
}

但不幸的是,此方法通过与 Safari Webdriver 的玻璃 Pane 交互来中断测试,因此这就是我想禁用它的原因。

提前致谢!

最佳答案

如何调用网络驱动程序:

我就是这样调用它的

  public class Browser
{
public static IWebDriver Instance { get; set; }
public static IWebDriver _webDriver = new ChromeDriver();
public static string _baseUrl = "http://web page/#/login";
//public static string _baseUrl = "https://login Page/#/login";
public static ISearchContext Driver { get { return _webDriver; } }

internal static bool WaitElementIsDisplayed(By element, int timeout)
{

for (int i = 0; i < timeout; i++)
{
if (ElementIsDisplayed(element))
{
return true;
}
Thread.Sleep(9000);
}
return false;
}

该页面还有以下方法

   public static void PopUp()
{
_webDriver.SwitchTo().Alert().Accept();
}

从具有测试代码的方法调用,但不是从测试类调用

就你的情况

    try {
Robot robot = new Robot();
robot.mouseMove(820, 290);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
xxxx.PopUp();
} catch(AWTException e) {
e.printStackTrace(); //Log exception
}

关于java - 有没有办法禁用 Safari Webdriver Glass Pane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61954799/

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