We're using Watin for acceptance tests and we find it gets mighty slow once we have Web pages that are more than 100K of HTML source.
I've a feeling that some of the speed issues come from iterating over HTML tables. Some of our tables have 50 - 60 rows, each with 5 - 10 columns, and this makes Watin quite slow when searching for items on the page.
Does anyone have specific recommendations on (for instance) the best overloads of the element search methods to use? Are there specific methods to avoid because they're really slow?
You can speed up a bit with adding IDs to html table rows or columns elements. So in your case where you have less columns it is probably easier to add ids to at least columns. (Specially because numbers of rows is probably changing).
So instead of
string price = ie.Table(Find.ById("name")).TableRows[i].TableCells[i].Text;
with this changes in html
<table id="name">
<tr id='total'>
<td id='price'>
$1.00
</td>
</tr>
</table>
without iteration
string total = ie.TableRow(Find.ByID("total")).TableCell(Find.ById("price")).Text;
or only one iteration
ie.Table(Find.ById("name")).TableRows[i].TableCell(Find.ById("price")).Text;