java - Safari 中的 Selenium Java - 切换到新选项卡不起作用
问题描述
我有下一个情况:
我在 Safari 中使用 Selenium 在 MacOS 中运行自动化。我想控制打开的新标签(切换到 Safari 中的新标签)
我可以用 Chrome 和 Firefox 做到这一点,但在 Safari 中不起作用。
下一个代码是我正在使用的:
//Store the parent window
String parentWindow = driver.getWindowHandle();
//Open a new Windows(Mailtrap)
String a = "window.open('https://mailtrap.io/signin','_blank');";
((JavascriptExecutor)driver).executeScript(a);
//Take control over new browser
for(String handle: driver.getWindowHandles()){
driver.switchTo().window(handle);
}
//Make the same actions over new window
driver.manage().window().maximize();
driver.switchTo().defaultContent();
在那之后...
//关闭窗口并返回父窗口
driver.close();
driver.switchTo().window(parentWindow);
driver.switchTo().defaultContent();
正如我之前所说:它适用于 Firefox、Chrome、IE11,但在 Safari 12.0.3 中,这是我手动单击选项卡时的消息。
“这个 Safari 窗口是由自动化测试远程控制的。”
要与此 Safari 窗口交互,您需要停止当前的自动化测试会话。您不应将此窗口用于正常的网页浏览。
“关闭所有自动化”,“停止会话”,“继续会话”
有人可以帮我吗?
PS:开发->允许远程自动化被选中。
解决方案
由于 Safari 的自动化速度非常快,唯一的解决方案是“永远的老朋友”:
Thread.sleep
这是唯一的解决方案,因为隐式和显式等待不起作用。
推荐阅读
- jsf - 转换器方法 getAsObject() getAsString() 从未调用
- git - 将非 ssh 用户添加到 git
- sql - SQL - 从非标准 XML 格式解析 XML
- php - the_content 在使用页面或发布自定义模板时突然不显示内容
- python - 如何根据一列中的条件获取列表的特定列值的总和
- python - Python lxml:如何拆分逗号分隔的数据并从 XML 文件中查找特定值?
- php - Bootstrap 手风琴 展开全部
- python-3.x - Python数据透视表自定义排序x轴
- laravel - Laravel nova 动作 - 在 fields() 上获取当前模型实例
- c# - 为什么 c# 不等待 python 代码完成?