我有下一种情况:
我在MacOS中运行自动化,在Safari中运行Selenium。我想控制打开的新选项卡(在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();正如我之前所说的:它在火狐、Chrome、IE11上都能用,但在Safari12.0.3中,当我手动点击一个标签时,就会收到这样的信息。
“此Safari窗口由自动测试远程控制。”
要与此Safari窗口交互,您需要停止当前的自动测试会话。您不应使用此窗口进行正常的web浏览。
“关闭所有自动化”、“停止会话”、“继续会话”
有人能帮我这个忙吗?
PS:开发-->允许远程自动化被选中。
发布于 2019-10-02 01:10:59
由于Safari的自动化速度非常快,因此唯一的解决方案是“永远的老朋友”:
Thread.sleep这是唯一的解决方案,因为隐式和显式等待都不起作用。
https://stackoverflow.com/questions/57617400
复制相似问题