Détecter quand une page web est chargée, sans l'aide de sommeil
Je suis entrain de créer un script VB sur windows qui ouvre un site sous IE. Ce que je veux: Détecter le moment où la page web est chargée et afficher un message. J'ai réalisé cela en utilisant le sommeil (WScript.Sleep
) env. secondes lorsque le site est chargé. Cependant, le site affiche le nom d'utilisateur, mot de passe dans le milieu. Uniquement lorsque l'utilisateur d'entrer des informations d'identification, il termine le chargement de la page. Donc, je ne veux pas utiliser de "sommeil" pendant environ secondes, au lieu exacte de la fonction ou un moyen de détecter que la page ai chargé. J'ai vérifié sur la ligne, et essayé d'utiliser Do While
boucle, onload
, onclick
fonctions, mais rien ne fonctionne. Pour simplifier, même si j'écris un script pour ouvrir un site comme yahoo et de détecter, d'afficher un message "Hi" lorsque la page est chargée: Il ne fonctionne pas sans l'aide de sommeil (WScript.Sleep
).
OriginalL'auteur user3562474 | 2014-04-23
Vous devez vous connecter pour publier un commentaire.
Essayer méthode classique:
UPD: celui-ci devrait vérifier les erreurs:
UPD2: Vous avez écrit que IE est déconnecté comme le pop-up de connexion arrive, hypothétiquement, il est un moyen d'attraper la déconnexion, puis obtenir IE instance de nouveau. Remarque c'est "anormale de la programmation" 🙂 j'espère que cela aide:
Vous pouvez obtenir tous les nœuds de texte, de liens etc. depuis les DOM, comme suit:
Aussi regarder obtenir des données de texte
UPD3: je veux placer ici vérification supplémentaire si la page web de chargement et l'initialisation:
UPD4: Il y a certains cas où vous avez besoin de suivre si un nœud cible ont été créés dans le document (en général, il est nécessaire si vous obtenez
Object required
erreur lors de la tentative d'accès au nœud.getElementById
, etc.):Si la page utilise AJAX (chargé source de la page HTML ne contient pas de nœud cible, le contenu actif comme le JavaScript crée dynamiquement), il y a l'exemple dans le ci-dessous l'extrait d'une page, en montrant comment cela pourrait ressembler. Le nœud de texte
5.99
peut-être créé une fois que la page est complètement chargée, et quelques autres demandes à un serveur supplémentaire pour l'affichage de données ont pris une place:Ou si vous chargez e. g. Google page de résultat de recherche et d'attente pour les Suivant bouton est apparu (en particulier, si vous avez appelé
.click
méthode sur la page précédente), ou le chargement d'une page avec connexion formulaire web et d'attente pour le nom d'utilisateur champ de saisie comme<input name="userID" id="userID" type="text" maxlength="24" required="" placeholder="Username" autofocus="">
.Le code ci-dessous permet de faire une vérification supplémentaire si le nœud cible est accessible:
S'il vous plaît essayer mon code mis à jour, si votre page semble être complètement chargé, mais pas de réaction à partir d'un script - vérifier si wscript.exe est en cours d'exécution dans le processus, si oui probablement, il peut obtenir une erreur permanente qui provoque une boucle infinie.
Merci encore une fois, il charge la page web, mais n'affiche pas le message après la détection de la page chargée. Donc, en fonction du site et de l'exigence que j'ai, permettez-moi de modifier ma requête: Script s'ouvre "login.yahoo.com/config/login_verify2?" dans IE. Lorsque les informations d'identification sont saisies et la page est en outre chargé montrant des e-mails, il doit détecter et d'afficher un message, dire "Voici vos e-mails". C'est ce que je suis en train de réaliser.
Juste pour ajouter ici, je l'ai testé avec login.yahoo.com/config/login_verify2?%22 ainsi, il fonctionne très bien. Mais la page web que je suis, est un .page asp. Est ce que cela a quelque chose à voir avec le code ne fonctionne pas pour cette page?
C'est pas grave si la page est .asp ou d'une autre, parce que votre navigateur fonctionne avec les pages après l'analyse html de réception via des requêtes http. S'il vous plaît partagez l'adresse web exemple avec qui que ce code ne fonctionne pas correctement.
OriginalL'auteur omegastripes
À Cocher Suivantes par Élément Résolu pour moi :
OriginalL'auteur Etay Gudai