在并行执行中,safari浏览器会自动导航到不带登录页面的URL

时间:2016-01-13 10:10:54

标签: java selenium selenium-webdriver safaridriver

我正在使用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();

    }

1 个答案:

答案 0 :(得分:0)

我个人之前没有使用过safari。正如您所说,所有其他浏览器中的行为都与您期望的一样。我希望你尝试以下方法。 有一种方法可以指定要使用的驱动程序实例的配置文件。我建议你为每个实例创建单独的配置文件并试用。如何做到这一点在answer中有所解释。这个答案解释了每次如何使用相同的配置文件。您每次都需要使用不同的配置文件。 (在Chrome中默认情况下会发生这种情况,因此不确定为什么它不会用于safari)