Sì, misura questo ciclo togliendo i vari "pezzi"
Cioè misuracodice:if (output[i].InnerText.Contains("testo da cercare")) { output[i].SetAttribute("selected", "true"); aggiungi.Click(); break; }
Togli aggiungi.click
misura
togli il setattribute
misura
togli tutto il ciclo
Perchè essendoci un "break" al primo match positivo si blocca.
Individua se è lento il ciclo (per ogni elemento ritornato, nel qual caso hai poco da fare), oppure se è lenta la ricerca del testo che vuoi.
Altrimenti, se capisco bene la semantica di quello che vuoi fare, stai cercando di flaggare una checkbox automaticamente da programma. Ma poi, cosa succede?
L'utente continua a poter "paciugare", o la pagina viene submitata o qualcosa del genere?
Nel secondo caso potresti, come accennato, "compilartela in separata sede".
QUindi la domanda è: cosa vuoi fare, esattamente?