Могу ли я добавить свойство id в элемент HTML, созданный с помощью React - PullRequest
0 голосов
/ 04 марта 2019

Я использую Selenium для написания сквозных тестов для веб-приложения, разработанного в React.После проверки веб-сайта я обнаружил, что практически ни у одного элемента html не установлено свойство id.

Поскольку наша команда разработчиков занята другими делами, я должен решить эту проблему самостоятельно.До сих пор я обходил эту проблему, используя селекторы css и xpath для определения местоположения элементов в моих тестах.

Однако я чувствую, что этот метод подвержен ошибкам, и, поскольку я не особенно вовлечен в разработкуПроцесс, о котором я не сразу узнаю об изменениях в структуре веб-сайта.

Чтобы сделать тесты более надежными, я бы хотел найти большинство своих элементов по их свойству id.Если бы сайт был написан вне рамок реагирования, я бы просто добавил свойства id к нужным элементам в html-документе.

Есть ли способ сделать это без полного понимания исходного кода React?

1 Ответ

0 голосов
/ 05 марта 2019

React

React - это библиотека JavaScript для создания пользовательских интерфейсов.React упрощает разработку простых представлений для каждого состояния в вашем приложении.React может эффективно обновлять и отображать только нужные компоненты при изменении данных вашего приложения.Декларативные представления делают ваш код более предсказуемым и простым при отладке.Поскольку логика компонента написана на JavaScript, а не на шаблонах, вы можете легко передавать расширенные данные через ваше приложение и не допускать состояния в HTML DOM .Это, в свою очередь, помогает создавать инкапсулированные компоненты, которые управляют своим собственным состоянием, а затем компоновать их для создания сложных пользовательских интерфейсов.


render ()

render()это единственный метод в жизненном цикле , который существует в нескольких фазах жизненного цикла.Это происходит здесь в Рождение , и именно здесь мы проводим много времени в Рост .


Визуализация реквизита

render prop относится к методике совместного использования кода между компонентами React с использованием свойства, значение которого является функцией.Компонент с реквизитом рендеринга берет функцию, которая возвращает элемент React, и вызывает его вместо реализации собственной логики рендеринга.Пример:

<DataProvider render={data => (
  <h1>Hello {data.target}</h1>
)}/>

Компонент React

Компоненты React реализуют метод render(), который принимает входные данные и возвращает то, что отображать.Входные данные, которые передаются в компонент, могут быть доступны с помощью render() через this.props.В следующем примере используется XML-подобный синтаксис с именем JSX:

Код:

class HelloMessage extends React.Component {
  render() {
    return (
      <div>
    Hello {this.props.name}
      </div>
    );
  }
}

ReactDOM.render(
  <HelloMessage name="CrispJam" />,
  document.getElementById('hello-example')
);

Результат:

Hello CrispJam

Заключение

Таким образом, нет выхода для редактирования исходного кода React без полного понимания.Однако стратегии Locator одинаково хороши для определения местоположения и идентификации элементов на основе статических и динамических атрибутов.

Соответствующее обсуждение можно найти в:

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