t.me/atinfo_chat Telegram группа по автоматизации тестирования

Switch с типом String некорректно отрабатывает

java
selenium
webdriver
Теги: #<Tag:0x00007f21d5313528> #<Tag:0x00007f21d5313398> #<Tag:0x00007f21d5313208>

(Ayna5) #1

Помогите, пожалуйста, не могу понять почему не отрабатывает switch.
Первые 4 итераций цикла проходят успешно, а 5 цикл всегда валится.
Switch не переходит в нужный case, переходит сразу в блок default.

this.mainPagePersonal.goToPage(URLforReklamBanner.urlMsk);
        tabs = new ArrayList<String>(getDriver().getWindowHandles());
        this.mainPagePersonal.getWindowHandlesEquallyOne();
        getDriver().switchTo().window(tabs.get(0));
        List<WebElement> elems = getDriver().findElements(Locators.locatorBannerButtonList);
        for (int i = 1; i < elems.size() + 1; i++) { //всего 6 банеров
            String cover_name = this.mainPagePersonal.findElementt(By.cssSelector(".promo-index__item:nth-child(" + i + ") .cover__name")).getAttribute("textContent");
            baseClass.clickElement(By.cssSelector(".promo-index__slider-nav-wrap .bx-pager-item:nth-child(" + i + ") a"));
            String url = baseClass.findElement(By.cssSelector(".promo-index__item:nth-child(" + i + ") a.btn.btn_large.cover__fields")).getAttribute("href");
            ((JavascriptExecutor) getDriver()).executeScript("window.open();");
            tabs = new ArrayList<String>(getDriver().getWindowHandles());
            this.mainPagePersonal.getWindowHandlesMoreOne();
            getDriver().switchTo().window(tabs.get(1));
            this.mainPagePersonal.goToPage(url);
            System.out.println(cover_name);
            switch (cover_name) {
                case "Первый баннер":
                    baseClass.shouldSeeHeader(Titles.titleFirstPageBaner, getDriver().findElement(Locators.hlocatorTitlePages).getAttribute("textContent"));
                    getDriver().close();
                    getDriver().switchTo().window(tabs.get(0));
                    Log.debug("Select the banner:" + " " + Locators.hhFirstCoverName);
                    break;
                case "Второй баннер":
                    this.mainPagePersonal.shouldSeeTitle(Titles.titleSecondPageBaner);
                    getDriver().close();
                    getDriver().switchTo().window(tabs.get(0));
                    Log.debug("Select the banner:" + " " + Locators.hhSecondCoverName);
                    break;
                case "Третий баннер":
                    baseClass.shouldSeeHeader(Titles.titleThirdPageBaner, getDriver().findElement(Locators.hlocatorTitlePages).getAttribute("textContent"));
                    getDriver().close();
                    getDriver().switchTo().window(tabs.get(0));
                    Log.debug("Select the banner:" + " " + Locators.hhThirdCoverName);
                    break;
                case "4 баннер":
                    baseClass.shouldSeeHeader(Titles.titleFourthPageBaner, getDriver().findElement(Locators.hlocatorTitlePages).getAttribute("textContent"));
                    getDriver().close();
                    getDriver().switchTo().window(tabs.get(0));
                    Log.debug("Select the banner:" + " " + Locators.hhFourthCoverName);
                    break;
                case "5 баннер":
                    this.mainPagePersonal.shouldSeeTitle(Titles.titleFifthPageBaner);
                    getDriver().close();
                    getDriver().switchTo().window(tabs.get(0));
                    Log.debug("Select the banner:" + " " + Locators.hhFifthCoverName);
                    break;
                case "6 баннер":
                    baseClass.shouldSeeHeader(Titles.titleSixthPageBaner, getDriver().findElement(Locators.hlocatorTitlePages).getAttribute("textContent"));
                    getDriver().close();
                    getDriver().switchTo().window(tabs.get(0));
                    Log.debug("Select the banner:" + " " + Locators.hhSixthCoverName);
                    break;
                case "7 баннер":
                    this.mainPagePersonal.shouldSeeTitle(Titles.titleSeventhPageBaner);
                    getDriver().close();
                    getDriver().switchTo().window(tabs.get(0));
                    Log.debug("Select the banner:" + " " + Locators.hhSeventhCoverName);
                    break;
                case "8 баннер":
                    this.mainPagePersonal.shouldSeeTitle(Titles.titleEighthPageBaner);
                    getDriver().close();
                    getDriver().switchTo().window(tabs.get(0));
                    Log.debug("Select the banner:" + " " + Locators.hhEighthCoverName);
                    break;
                case "9 баннер":
                    this.mainPagePersonal.shouldSeeTitle(Titles.titleNinethPageBaner);
                    getDriver().close();
                    getDriver().switchTo().window(tabs.get(0));
                    Log.debug("Select the banner:" + " " + Locators.hhNinethCoverName);
                    break;
                case "10 баннер":
                    baseClass.shouldSeeHeader(Titles.titleTenthPageBaner, getDriver().findElement(Locators.hlocatorTitlePages).getAttribute("textContent"));
                    getDriver().close();
                    getDriver().switchTo().window(tabs.get(0));
                    Log.debug("Select the banner:" + " " + Locators.hhTenthCoverName);
                    break;
                case "11 баннер":
                    baseClass.shouldSeeHeader(Titles.titleElevenPageBaner, getDriver().findElement(Locators.hlocatorTitlePages).getAttribute("textContent"));
                    getDriver().close();
                    getDriver().switchTo().window(tabs.get(0));
                    Log.debug("Select the banner:" + " " + Locators.hhElevenCoverName);
                    break;
                default:
                    System.out.println("Banner not found");
                    Log.debug("Banner not found");
                    break;
            }

        }

(Alexandr D.) #2

Может потому что баннер не найден?


(Ayna5) #3

Нет
System.out.println(cover_name); выводит баннер из case и глазами я это вижу, а код переходит в блок default.


(Alexandr D.) #4

Значит условие кейса не выполняется, очевидно.
Лишний пробел или символ из другой раскладки, что угодно может быть.


#5

(Sergei) #6

Хех соблазнился на название, думал в кои-то веки всплыла серьезная проблема :slight_smile: