作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<小时/>
根据 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/
我是一名优秀的程序员,十分优秀!