我需要同时测试多个独立的浏览器会话(以模拟远程协作)。这在Chrome和Firefox中很容易实现,而在Safari中则不然。我一直收到以下错误消息:
无法创建会话: Safari实例已经与另一个WebDriver会话配对。
我尝试在不同端口上运行独立Selenium服务器的多个实例,但这也没有帮助:
java -jar selenium-server-standalone-3.141.59.jar -port 4445也没有从不同的用户帐户运行它。有什么办法可以做到这一点,而不必运行多个实例的完整操作系统?
发布于 2018-12-03 15:56:40
显然不可能在目前(或在不久的将来从以下声明的语气)。
来自https://developer.apple.com/documentation/webkit/about_网络驱动程序_为_safari:
每次一个会话,为了模拟用户交互,在任何给定的时间只有一个Safari实例可以活动,而每次只能有一个WebDriver会话可以附加到浏览器实例。这些约束确保模拟行为(鼠标、键盘、触摸等)准确地反映用户在macOS窗口环境中可以做什么,并防止测试相互竞争窗口和键盘焦点。
发布于 2019-12-08 00:19:38
一个对我有用的解决方案是使用@治注释并将作用域设置为功能。
from selenium.webdriver import Safari
@fixture(scope='function')
def browser():
browser = Safari()
return browserhttps://sqa.stackexchange.com/questions/36658
复制相似问题