Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium Java~未按预期删除Cookie_Java_Jakarta Ee_Selenium - Fatal编程技术网

Selenium Java~未按预期删除Cookie

Selenium Java~未按预期删除Cookie,java,jakarta-ee,selenium,Java,Jakarta Ee,Selenium,我正在尝试使用SeleniumJava/FirefoxEclipse插件自动测试webapp。 我正在尝试付款,然后删除cookies,以删除所有存储的信息。由于某种原因,这不起作用 public void validationCards(BufferedWriter out){ outFile = out; ArrayList<String> methodList = new ArrayList<String>(); methodList.add

我正在尝试使用SeleniumJava/FirefoxEclipse插件自动测试webapp。 我正在尝试付款,然后删除cookies,以删除所有存储的信息。由于某种原因,这不起作用

public void validationCards(BufferedWriter out){
    outFile = out;
    ArrayList<String> methodList = new ArrayList<String>();
    methodList.add("validationVisaFrench");
    methodList.add("validationMCFrench");
    methodList.add("validationDiscoverFrench");
    methodList.add("validationDinerClubFrench");
    methodList.add("validationJCBFrench");
    Method method = null;

    for(String testToRun:methodList){
        try{
            method = this.getClass().getMethod(testToRun);
        }catch(NoSuchMethodException e){
            System.out.println("This failed horribly");
            e.printStackTrace();
        }catch(RuntimeException ex){
            ex.printStackTrace();
        }catch (Exception e) {
            e.printStackTrace();
        }

        try{
            PPSCTests tempObj = this;
            this.testDriver.manage().deleteAllCookies();
            method.invoke(tempObj);
            this.testDriver.manage().deleteAllCookies();
        }catch (Exception e) {
            System.out.println("Cant invoke method for shits and giggles");
            e.printStackTrace();
        }
    }
}
但是看起来并没有任何cookies被删除。我有点困了。任何帮助都将不胜感激。

因此deleteAllCookies()的功能不起作用。也没有删除所有VisibleCookies()。我为支付方法创建了一个新的WebDriver实例

public void payment(String ccNumber, String queryType){
    WebDriver driverTest = new FirefoxDriver(profile);
    this.testDriver = driverTest; //then assigning it to the local WebDriver
    if(queryType.equals("query"))
        testDriver.get(testUrl + query());
    else if(queryType.equals("queryClean"))
        testDriver.get(testUrl + queryClean());
    else {
        System.out.println(testUrl + frenchQuery());
        testDriver.get(testUrl + frenchQuery());
    }
    testSelenium.waitForPageToLoad("7000");
    WebElement ccElement1 = null;
    WebElement ccExpiryElement = null;

    ccElement1 = testDriver.findElement(By.id("ccNumber"));
    ccExpiryElement = testDriver.findElement(By.id("ccExpiryDate"));

    WebElement cvv2Element1 = testDriver.findElement(By.name("ccCvv2"));
    ccElement1.sendKeys(ccNumber);
    ccExpiryElement.sendKeys("1112");//MMYY
    cvv2Element1.sendKeys("1111");
    WebElement submit = testDriver.findElement(By.id("oneTouchSubmit"));
    submit.submit();
    testSelenium.waitForPageToLoad("10000");
    //driverTest.close();
}

这不是一个优雅的解决方案,但它能满足我的需要。创建新实例的工作原理基本上与删除cookies相同。

Huh。该方法仅删除当前域的Cookie。您确定没有来自其他域的cookie吗?这些安全的东西往往有自己的万事达卡/Visa Cookie连接到“他们的”网站,即使你在本地运行它。与他们的网站有互动吗?也就是说,您可以每次重新启动Firefox并创建一个新的配置文件。这很慢,但如果没有解决方案,肯定会有帮助……在您
deleteAllCookies()
之后,返回什么?嗯,基于web的cookie只包含一个令牌,如果删除cookie,该令牌应该被删除。但那并没有发生。我尝试了getCookies(),cookies的数量减少了,但没有任何变化。我通过“作弊”使它起作用。发布我现在同意的答案。
public void payment(String ccNumber, String queryType){
    WebDriver driverTest = new FirefoxDriver(profile);
    this.testDriver = driverTest; //then assigning it to the local WebDriver
    if(queryType.equals("query"))
        testDriver.get(testUrl + query());
    else if(queryType.equals("queryClean"))
        testDriver.get(testUrl + queryClean());
    else {
        System.out.println(testUrl + frenchQuery());
        testDriver.get(testUrl + frenchQuery());
    }
    testSelenium.waitForPageToLoad("7000");
    WebElement ccElement1 = null;
    WebElement ccExpiryElement = null;

    ccElement1 = testDriver.findElement(By.id("ccNumber"));
    ccExpiryElement = testDriver.findElement(By.id("ccExpiryDate"));

    WebElement cvv2Element1 = testDriver.findElement(By.name("ccCvv2"));
    ccElement1.sendKeys(ccNumber);
    ccExpiryElement.sendKeys("1112");//MMYY
    cvv2Element1.sendKeys("1111");
    WebElement submit = testDriver.findElement(By.id("oneTouchSubmit"));
    submit.submit();
    testSelenium.waitForPageToLoad("10000");
    //driverTest.close();
}