根据WebKit
的Safari 10
文档:
在Safari中运行WebDriver测试时,测试执行仅限于与正常浏览窗口、用户设置和首选项隔离的特殊自动化窗口。自动窗口很容易被橙色智能搜索字段识别。
在浏览器的那个版本中,我能够在没有“玻璃窗格”的情况下运行Safari
的自动化,方法是:
var webdriver = require('selenium-webdriver'),
safari = require('selenium-webdriver/safari');
driver = new webdriver.Builder()
.forBrowser('safari')
.usingServer('http://localhost:4444/wd/hub') // this previous avoided the glass pane
.build();
我相信这起作用的原因是启动Webdriver
并使用Selenium
独立服务器中心和SafariDriver
扩展可以将其作为Selenium Grid
的一部分用于远程自动化。它似乎不再适用于Safari 11
。
文件中的说明:
“automaticInspection功能将在后台预加载Web检查器和JavaScript调试器;若要暂停测试执行并打开Web检查器的调试器选项卡,只需在测试页面中计算调试器;语句即可。”
这将是有用的,但我认为这意味着我需要将调试语句添加到源代码中,在我的情况下,这不是QA有权做的事情。
有没有一种方法可以使用Selenium
在没有“玻璃窗格”的情况下自动在Safari 11
中进行测试?任何我可能需要做的阅读都是受欢迎的;当我在玻璃窗格中运行时,我遇到了太多的问题,这使得修复每一个问题成为一种有效的方法。
发布于 2021-01-11 07:33:47
简短的回答是否定的。
更长的答案是,我不是百分之百肯定,但我很有信心,答案是否定的。
我在酱油实验室工作了几年,其中有几个是支持的。我做了很多黑客,试图让Safari和其他lot驱动的浏览器玩得很好,Safari一直是最难理解的。
自从为Safari 10创建SafariDriver以来,他们一直在改进Safari的自动化工作方式。我怀疑他们想用苹果的方式来做。Safari11.1和更早的版本仍然支持WebDriver 2,但从Safari 12开始,它都是WebDriver 3。我怀疑苹果是在逐步改变Safari自动化,使其与他们认为应该工作的方式保持一致。
我认为你的猜测很好,你为什么可以避免在早期版本的玻璃面板;我怀疑苹果公司一开始没有意识到这是可能的。一旦他们做了,他们就把它移走了。
我可能错了!这只是一个预感;我们运行了36亿个测试,我看到人们对浏览器做了很多事情,但我从未见过他们在测试停止的情况下破坏了玻璃窗格。对不起!
https://sqa.stackexchange.com/questions/30178
复制相似问题