Цепочка вызовов

Когда метод возвращает объект, на этом объекте сразу можно вызвать следующий метод. Это называется цепочкой вызовов.

Два способа написать одно и то же

Через промежуточные переменные — так нагляднее:

var he = instance.ActiveTab.FindElementById("input-text");
string value = he.GetValue(false);
project.SendInfoToLog(value);

Через цепочку — короче, но читается тяжелее:

string value = instance.ActiveTab.FindElementById("input-text").GetValue(false);
project.SendInfoToLog(value);

Результат одинаковый. Для обучения лучше использовать первый вариант — с переменными. Цепочки начинают применять когда код уже хорошо читается в голове.

Почему это работает

Каждый шаг возвращает объект, у которого есть свои методы:

instance                             → объект Instance
  .ActiveTab                         → объект Tab
    .FindElementById("input-text")   → объект HtmlElement
      .GetValue(false)               → строка string

На строке методов больше нет — цепочка заканчивается.

Практика на Sandbox

// заполнить поля в Zone 01
instance.ActiveTab.FindElementById("input-text").SetValue("Иван", false);
instance.ActiveTab.FindElementById("input-email").SetValue("[email protected]", false);
instance.ActiveTab.FindElementById("input-tel").SetValue("+79001234567", false);
instance.ActiveTab.FindElementById("textarea-main").SetValue("Комментарий", false);
 
project.SendInfoToLog("поля заполнены");

Здесь каждая строка — короткая цепочка из двух шагов: найти элемент → установить значение.