Java Selenium нет такого элемента: невозможно найти элемент - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь найти веб-элемент с linkText "футболки".Сначала я нашел родительский класс, а затем попытался найти элемент.Я напечатал имя тега его родителя, и он работает, как ожидалось.Но я не могу найти элемент, используя либо linkText, либо partLinkText.Веб-страница http://automationpractice.com/index.php.

    WebElement tshirts_tab = driver.findElement(By.cssSelector(".sf-menu.clearfix.menu-content.sf-js-enabled.sf-arrows"));
    System.out.println(tshirts_tab.getTagName());
    WebElement tshirts = tshirts_tab.findElement(By.partialLinkText("T-shirts"));

    System.out.println(tshirts.getAttribute("href"));

html inspect

1 Ответ

0 голосов
/ 18 октября 2018

Попробуйте

WebElement tshirts = tshirts_tab.findElement(By.partialLinkText("T-SHIRTS"));

или

WebElement tshirts = tshirts_tab.findElement(By.linkText("T-SHIRTS"));

В соответствии со спецификацией WebDriver https://www.w3.org/TR/webdriver1/#link-text

"Let Rendered Text быть значением, которое будет возвращено при вызове Get Element Text для элемента. "

В вашем случае вы можете видеть, что элемент, который вы ищете через linktext, имеет стиль "text-transform: uppercase;", который фактически преобразовывает текст рендер в верхнем регистре.

Вы можете найти этот элемент, используя другой локатор, а затем вызвать метод .getText() и увидеть, что он на самом деле возвращает "ФУТБОЛКИ".Поэтому вызов linkText также должен быть снабжен «ФУТБОЛКАМИ» (визуализированный текст) в качестве параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...