Как проверить, имеет ли каждый элемент идентификатор?

#selenium-webdriver

#selenium-webdriver

Вопрос:

Мы просто хотим убедиться, что в веб-кодах, реализованных командой разработчиков, каждый элемент имеет ID значение свойства.

Как я могу проверить? Спасибо!

Комментарии:

1. какой браузер вы используете для тестирования?

Ответ №1:

Протестируйте этот xpath в своем браузере: //*[string(@id)] Это не только даст вам элементы, которые имеют идентификатор, но и чьи идентификаторы имеют некоторое значение. Возможно, разработчики забыли ввести идентификатор. Затем используйте это //* , чтобы получить все элементы. Если вам нужны элементы с идентификатором (пустым или заполненным), используйте это //*[@id]

Комментарии:

1. Ваше решение простое и легкое. Спасибо!

2. @Kevin — тогда, пожалуйста, примите этот ответ. Попробуйте использовать мой код в скрипте, который автоматически проверит все для вас.

Ответ №2:

(Предполагая, что вы используете Java) существует метод WebElement#getAttribute() , с помощью которого вы можете получить значение любого атрибута элемента..

Мы просто хотим убедиться, что в веб-кодах, реализованных командой разработчиков, каждый элемент имеет значение свойства ID. Как я могу проверить?

Сначала вам нужно найти все элементы, а затем внутри цикла вы можете определить, имеет ли каждый элемент атрибут ID или нет, используя getAttribute("id") , как показано ниже :-

 public boolean isAllElementsHasId() 
{
    boolean isAllElementsHasId = true;

    List<WebElement> allPageElements = driver.findElements(By.cssSelector("*"));

    for(WebElement el : allPageElements)
    {
        if(el.getAttribute("id") == null)
        {
          isAllElementsHasId = false;
          break;
        }
    }
    return isAllElementsHasId
}
  

Использование :

 if(isAllElementsHasId() == true)
{
    System.out.println("All elements in the page has an attribute ID");
}