1. Находим в DOM или source определение слово
Я бы это реализовал примерно так - взял бы все слова в какой-то список/массив.
Дальше каждое слово определил бы есть оно на страничке или нет.
Результат сохранил бы в виде НомерСлова_1 если есть или НомерСлова_0 - если нет.
Прошелся бы по целому списку, результат соединил бы в одну строку.
Получилось бы примерно так: 0_1-1_0-2_0
Дальше в shitch (как у Вас на скриншоте) добавил бы все возможные варианты, для данного случая примерно такие:
0_1-1_0-2_0
0_0-1_0-2_0
0_1-1_0-2_1
0_0-1_0-2_1
0_1-1_1-2_0
0_0-1_1-2_0
0_1-1_1-2_1
0_0-1_1-2_1
И дальше уже в зависимости от указанного действия делал бы определенные действия.
string[] text = new[] {"html", "css", "zennolab"}; // слова которые собрались проверять
List<string> list = new List<string>();
for(int i=0;i<text.Length; i++) {
bool check = instance.ActiveTab.DomText.Contains(text[i]) || instance.ActiveTab.GetSourceText("utf-8").Contains(text[i]);
list.Add(string.Format(@"{0}_{1}", i, check ? 1 : 0));
}
return string.Join("-", list); // вернёт примерно такой результат 0_1-1_0-2_0
Но, когда слов будет много - то в switch придётся добавлять много вариантов.
Тогда можно было бы сгенерировать все возможные варианты, возле каждого варианта определить какое действие будет выполняться (например 0_1-1_0-2_0:0 - где после двоеточия - действие которое нужно выполнить - выход по switch ).
В switch тогда добавить варианты 0,1,2... по количеству разных действий).
И дальше уже получив результат - получать из списка/таблицы нужный вариант действия - и уже его отправлять в switch - и оттуда уже переходить на нужное действие.