Как получить имя веб-элемента? - PullRequest
0 голосов
/ 23 декабря 2018

Я хочу показать в отчете по экстентам название веб-элемента (в моем примере - "USER_LOGIN");как мне его получить?

Я пытался использовать getText(), но в результате он получил пустое значение.

Например, это код сайта:

<input class="form_control w100p ffg big" type="text" 
name="USER_LOGIN" value="lpelet2@gmail.com" maxlength="255" placeholder="E-mail">

и вот что я пытаюсь сделать:

public void verifyElementExist(WebElement weElem) throws ParserConfigurationException, SAXException, IOException
{
     try 
     {
       weElem.isDisplayed();
       extnTest.log(LogStatus.INFO, "Element exist - " + weElem.getText()); 
     }
     catch (Exception e)
     {
        ...
     }
}

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Ваш код должен возвращаться пустым!

Я полагаю, вы путаете имя с атрибутом, а имя с именем элемента.В вашем случае поле ввода имеет имя в качестве атрибута, который вы можете использовать, чтобы найти элемент, или разработчики могут использовать его для анализа данных, когда пользователь нажмет кнопку отправки.

Ваш код (getText ()) вернулся быUserName, если бы HTML-код был примерно таким:

 **UserName**

    <input class="form_control w100p ffg big" type="text" name="USER_LOGIN" value="lpelet2@gmail.com" maxlength="255" placeholder="E-mail">

Вы наверняка получили бы UserName в своем журнале.

У большей части элемента в профессиональном проекте должно быть имя, нонет необходимости иметь его.Таким образом, обещание имени элемента на уровне структуры не оправдано.Возможно, вам потребуется выполнить некоторую фильтрацию при входе в систему, если вы вообще хотите записать их имена.

0 голосов
/ 23 декабря 2018

Вы можете получить подробную информацию о разнице между getText и getAttribute здесь .
Код ниже получит имя или идентификатор:

String nameOrId = weElem.getAttribute("name") == null ? weElem.getAttribute("name") : weElem.getAttribute("id");
if (name == null)
   name = "uknown";

Не все элементы будут иметьid или name, некоторые элементы, которые вы найдете с помощью селекторов xpath или css и приведенный выше код, не будут работать для вас.Простой способ изменить ваш метод, как показано ниже:

public void verifyElementExist(String name, WebElement weElem) throws ParserConfigurationException, SAXException, IOException
{
     try 
     {
       weElem.isDisplayed();
       extnTest.log(LogStatus.INFO, "Element exist - " + name); 
     }
     catch (Exception e)
     {
        ...
     }
}
...