我正在使用selenium web驱动程序2.48和safari驱动程序2.48和safari版本8.0.8
我在safari驱动程序中运行测试执行时遇到问题。问题是
"In parallel execution, if in one safari window,login is successfull, than in other
safari windows, this login page is not shown,
that means safri navigate to url with
out login as one safari window already complete login."
因此,我面临并行执行中的问题:
"CSRF verification failed.Request aborted"
我想要并行执行:
if five safari browser window open, in each window, login page will be appeared.
In a sense, each safari driver instance will not share other safari driver
instances resources or any other thing
我更改了safari偏好设置,但没有帮助。
有没有最好的方法来声明safari驱动程序或我需要添加任何所需的功能或 在safari偏好中的任何其他东西或任何好的建议。
请和谢谢。
我正在使用以下代码:
SafariOptions safariOptions = new SafariOptions();
safariOptions.setUseCleanSession(true);
DesiredCapabilities dc = DesiredCapabilities.safari();
dc.setCapability(SafariOptions.CAPABILITY, safariOptions);
currentDriver = new SafariDriver(dc);
Set<Cookie> cookies = currentDriver.manage().getCookies();
currentDriver.manage().deleteAllCookies();
if(!cookies.isEmpty())
{
Iterator<Cookie> iter= currentDriver.manage().getCookies().iterator();
while(iter.hasNext()){
Cookie C = iter.next();
}
cookies.clear();
}
答案 0 :(得分:0)
我个人之前没有使用过safari。正如您所说,所有其他浏览器中的行为都与您期望的一样。我希望你尝试以下方法。 有一种方法可以指定要使用的驱动程序实例的配置文件。我建议你为每个实例创建单独的配置文件并试用。如何做到这一点在answer中有所解释。这个答案解释了每次如何使用相同的配置文件。您每次都需要使用不同的配置文件。 (在Chrome中默认情况下会发生这种情况,因此不确定为什么它不会用于safari)