Je fais un projet d'automatisation pour mon organisation. J'utilise le navigateur Web Firefox à cette fin. Le code fonctionne bien mais est bloqué à un moment d'un point entre le programme.Problème est lié à un clic sur une plage. comme on le voit dans cette image lorsque je clique sur la tâche complète, il affiche des informations sur l'élément de tâche complet. Ensuite, je dois cliquer sur Soumettre une pièce mais en raison de ce programme d'info-bulle est incapable de cliquer sur Soumettre l'élément. Suivant est le code HTML de avec le code SELENIUM 1.Ji doit d'abord cliquer sur la tâche complète 2. Après avoir cliqué sur la tâche complète, l'option Soumettre la tâche apparaît sur la page Web et je dois cliquer sur le bouton Soumettre comme indiqué dans l'image code>.
p> Tache complète code> élément p> driver.execute_script("""
unction hideTips(event) {
var saveAlt = $(this).attr('alt');
var saveTitle = $(this).attr('title');
if (event.type == 'mouseenter') {
$(this).attr('title','');
$(this).attr('alt','');
} else {
if (event.type == 'mouseleave'){
$(this).attr('alt',saveAlt);
$(this).attr('title',saveTitle);
}
}
}
$(document).ready(function(){
$("a").live("hover", hideTips);
}); """)
3 Réponses :
Essayez ceci:
from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.action_chains import ActionChains
Merci pour votre réponse. Mais j'ai déjà mentionné dans la question que j'ai essayé toutes les manières possibles ci-dessus avant de poster cette question, vous pouvez vérifier que j'ai utilisé des actactes et exécuter le script
Pouvez-vous poster votre URL?
C'est l'URL de l'organisation qui ne fonctionne que sur l'intranet de l'organisation
Quelle exception obtenez-vous? Avez-vous vérifié votre élément n'est pas dans l'iframe
J'ai vérifié que l'élément n'est pas dans iframe. Je n'ai aucune exception. Mais si le programme de débogage exécute ces lignes de clic avec succès, mais après avoir cliqué sur une autre fenêtre de la fenêtre apparaît. Donc, ce clic ne fonctionne pas, de sorte que la poignée de fenêtre n'apparaît pas et que le programme donne l'index de la liste hors de portée lorsque j'ai essayé d'allumer une autre poignée de la fenêtre.
Il ne donne pas une exception sur la ligne de clic dans le code mais ne clique pas non plus sur la page Web.
J'ai récemment dépannué un problème similaire. Le texte des info-bulles de survol ne disparaît pas après avoir cliqué sur le premier élément, ce qui défaut le clic ultérieur sur un autre élément (comme l'élément est bloqué par les info-bulles, similaires à votre cas). Ce problème ne se produit que sur Firefox mais pas chrome. P>
Je n'ai pas compris pourquoi le texte des info-bulles du voleur reste sur l'interface utilisateur après le clic. La solution que j'ai trouvée est d'utiliser les actions Click Class à la place du clic de WebDriver () pour le premier élément, qui ne montrera pas les info-bulles de navigation et ne bloquez donc pas le deuxième clic. P>
Merci. Mais cet outil n'est pas pris en charge dans le navigateur Web Chrome, c'est pourquoi j'utilise Firefox et je me débats avec cet élément Web des quatre derniers jours. Avez-vous au courant d'une autre solution?
Aucune méthode ne fonctionne. Basé sur ce HTML, pouvez-vous donner un autre indice
La solution que j'ai mentionnée est pour Firefox. Pour clarifier, pour mon cas, le problème s'est produit en raison du clic sur un élément Web avec un texte d'info-bullets. Cela, en vous, pourrait être le bouton "Taille complète". Avez-vous essayé d'utiliser des actions cliquez pour cela? Actionchains (pilote) .Cliquez sur .Perform () Code>
Essayez si cela fonctionne: ou essayez d'envoyer des clés d'envoi. p> p>
Merci.mais dans Python JavascriptExecuteur.Executscript ("Arguments [0] .Submit ()", WebElment); n'est pas utilisé pour JavaScript plutôt que j'ai déjà mentionné avant de poser ma question que j'ai utilisé Driver.Execute_script ("Arguments [0] .Cliquez sur ();", soumettre) mais il n'a pas fonctionné
J'aurais pensé que le sélénium ne falsifie pas directement le clic, mais plutôt interagit avec l'élément. J'ai peut-être tort. Que se passe-t-il si vous exécutez le script suivant pour supprimer l'attribut 'alt'? "Document.Quiseryselector ('. ComplèteTask'). RemoveAttribute ('al t')"
@Sri pilote.execute_script ("document.Quiseryselector (" completsTask ") .RemoVeAttribute ('alt')") donne une exception selenium.common.exceptions.javascriptException: message: erreur javascript