Salve a tutti,
Sto scrivendo un programma in C# per popolare i campi di una pagina web in modo automatico.
In particolare, in questa pagina è presente un drop-down contenente circa 5300 campi.
Il codice che sto usando è il seguente:
codice:
private void button2_Click(object sender, EventArgs e)
{
foreach (InternetExplorer ie in new ShellWindows())
{
if (ie.LocationURL.Contains("aams"))
{
for (int i = 1; i < ie.Document.GetElementsByTagName("option").length - 1; i++)
{
if (ie.Document.GetElementsByTagName("option")[i].InnerText.Contains("testo da cercare"))
{
ie.Document.GetElementsByTagName("option")[i].SetAttribute("selected", "true");
ie.Document.GetElementsByTagName("input")["aggiungi"].Click();
break;
}
}
ie.Document.GetElementById("num").SetAttribute("value", "1");
ie.Document.GetElementsByTagName("input")["prepara"].Click();
ie.Document.GetElementById("nome_sftw1").SetAttribute("value", "Nome_Software");
ie.Document.GetElementById("cod_sha11").SetAttribute("value", "1234567890");
ie.Document.GetElementsByTagName("input")["Acquisisci"].Click();
}
}
}
Il problema di questo codice sta nel ciclo for, che è estremamente lento: solo per arrivare a valutare 1000 campi, ci mette una 30ina di secondi (o anche più).
Conoscete un algoritmo più efficiente del ciclo for per fare questo?
Vi ringrazio.