0
votes

Cliquer ne fonctionne pas dans le sélénium en raison de la présence d'une info-bulle dans le navigateur Web. Comment faire cliquez sur Travail ou masquer les info-bulles afin que cliquez sur Travailler

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. 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>.  voici l'image Lorsque je clique sur la tâche complète

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. Voici l'image de Soumettre p>

Suivant est le code HTML de 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);
});      """)


2 commentaires

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


3 Réponses :


0
votes

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


6 commentaires

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.



2
votes

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.

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.


3 commentaires

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 ()



0
votes

Essayez si cela fonctionne: xxx

ou essayez d'envoyer des clés d'envoi.


1 commentaires

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é