Je suis en train d'automatiser certains de nos processus, l'on inclut la connexion à une page Web externe, en cliquant sur un lien pour étendre les détails, puis saisissez tous les détails affichés.grattage bouton écran contenant la page Web avec AJAX
J'ai le processus connecté, et peut saisir tous les détails une fois qu'ils sont développés.
Le problème est de cliquer sur le lien. Le lien est défini comme ci-dessous (j'ai enlevé ce que la méthode Submit
ne fait que le code est long et probablement hors de propos Il est évident que l'img
est l'espace réservé comme un exemple.):
<a id="form:SummarySubView:closedToggleControl" onclick="A4J.AJAX.Submit(...); return false;" href="#">
<img ... />
</a>
J'utilise ces données comme ci-dessous:
void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser browser = (WebBrowser)sender;
HtmlElement expandDetails = browser.Document.GetElementById("form:SummarySubView:closedToggleControl");
//When open ID for element is "form:SummarySubView:openToggleControl"
if(expandDetails == null) //If already expanded
{
//Stuff
}
else
{
expandDetails.InvokeMember("click"); //Click on element to run AJAX
}
}
Lors de l'exécution expandDetails.InvokeMember("click");
browser_DocumentCompleted
est appelé à nouveau comme prévu, mais le document est identique avant et expandDetails
se retrouve avec l'id « fermé ». Cela signifie que les détails que je cherche ne sont jamais montrés.
Comment puis-je avoir accès au document après le script AJAX fonctionne correctement?
Ajout d'un Timer
pour retarder la vérification du document ne semble pas avoir fonctionné.
Génial! Je suis content que vous l'ayez fait fonctionner. –