8
votes

L'élément de sélénium "n'est pas cliquable sur le point" Erreur dans Firefox

En ce qui concerne l'erreur webDriver xxx

pour chromedriver, il est adressé à Débogage" "> L'élément de débogage n'est pas cliquable sur le point" Erreur , mais le problème peut également se produire dans Firefox.

Quels sont les meilleurs moyens de résoudre Ceci quand il se produit dans FirefoxDriver?


0 commentaires

8 Réponses :


2
votes

La correspondance minutieuse de la version du sélénium avec la version Firefox peut résoudre le problème. Le sélénium devrait faire défiler automatiquement un élément en vue si ce n'est pas sur la page. Forcer un élément en vue avec JavaScript est inutile.

Nous ne voyons jamais ce problème dans firefox 31.5.0 avec selenium-serveur-standalone-2.44.0.jar , mais lors de la mise à niveau vers Firefox 38.7.0 avec sélénium -Server-autonome-2.52.0.jar, il est devenu un problème.

voir https://github.com/seleniumhq/selenium/issues/1543


1 commentaires

Merci Monsieur!! Mise à jour du chromedriver et correspondant au serveur autonome avec la version sélénium dans OFFLLE a fonctionné :)



1
votes

actionbuilder peut résoudre l'erreur . Parfois, il y a un autre élément devant l'objet à cliquer, de sorte qu'un action d'action clique sur l'emplacement de l'élément peut fonctionner dans des cas où un clic traditionnel échoue xxx

ou essayez le milieu de l'élément xxx


3 commentaires

C'est très trompeur. Il appartient au fabricant du pilote de déterminer ce que le clic fait réellement, et où et comment cela clique sur. Avez-vous des sources pour montrer qu'il clique sur le "haut à gauche" par défaut? Si oui, quel navigateur


Vrai chaque conducteur pourrait être différent. Mon hypothèse provient de la coulée d'une location sur une locatable donne le coin supérieur gauche.


@sircapsalot Je ne suis pas tout à fait d'accord pour dire que c'est "très trompeur", puisque ActionBuilder est une solution valide à l'erreur dans de nombreux cas ... mais vous faites un point valide sur le fabricant du conducteur éventuellement sans défaut dans le coin supérieur gauche . J'ai édité le post en conséquence.



3
votes

Mon même problème est résolu par JavaScript, essayez de suivre le code suivant au lieu de SELENIUM Cliquez sur

WebElement rateElement = driver.findElement(By.xpath(xpathContenRatingTab));
((JavascriptExecutor)driver).executeScript("arguments[0].click();", rateElement);


1 commentaires

Cela a travaillé pour moi quand j'ai essayé la plupart des autres suggestions sans succès. SendKeys a travaillé pour chrome mais pas firefox. Merci.



3
votes

Si votre problème est que l'élément est défilé de l'écran (et par conséquent sous quelque chose comme une barre d'en-tête), vous pouvez essayer de la faire défiler dans la vue comme suit:

WebElement element= driver.findElement(By."Your Locator"));

JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);


5 commentaires

Ce type de réponse est utile, mais le sélénium devrait le faire automatiquement, donc je pense que la meilleure solution est de correspondre correctement aux versions de Firefox et de sélénium.


@Shubhramjain Qu'est-ce que les arguments [0] .Cliquez ici parce que je reçois cette erreur pour le code ci-dessus org.openqa.selenium.webdriveexception: arguments [0] .Click n'est pas une fonction


Pourquoi n'est-il pas recommandé d'utiliser JavascriptExCutor ?


Semble que JavascriptExcutor n'attend pas que la nouvelle page soit chargée lorsque vous cliquez sur un lien


Oui, ça n'attendra pas. Vous devez ajouter des personnes attentes avant de le déclencher



5
votes

Cela se produit dans les cas ci-dessous-

  • Lorsque l'élément est chargé dans le DOM, mais la position n'est pas fixé sur l'interface utilisateur. Il peut y avoir une autre div ou des images qui ne sont pas chargé complètement. P> li>

  • La page se fait rafraîchir avant de cliquer sur l'élément. P> Li> ul>

    Solution de contournement p>

    • Utilisez le thread.sleep avant les actions sur chaque élément Web de l'interface utilisateur, mais il est Pas une bonne idée. Li>
    • Utilisez webDriverwait attendre des rencontres. Li> ul>

      Je faisais face au même problème, l'heure de chargement de la page était plus et une icône de chargement se chevauchait sur une page Web totale. P>

      Pour le réparer, j'ai mis en œuvre WebDriverwait AttendsConditions attendues. Pour que l'icône de chargement disparaisse avant de passer à l'action, cliquez sur l'action sur un élément p>

      appeler cette fonction avant d'effectuer une action (j'utilise un cadre basé sur les données) p>

      public void waitForLoader () throws Exception  {
        try {
         String ObjectArray[]=ObjectReader.getObjectArray("LoadingIcon"); 
          if(checkElementDisplayed(ObjectArray[3],ObjectArray[2]))
          {
           WebDriverWait wait = new WebDriverWait(remotewebdriver,10); 
           wait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath(ObjectArray[3])));
          }
         } catch (NoSuchElementException e) {
         System.out.println("The page is loaded successfully");
         }
        }
      


0 commentaires

2
votes

J'ai eu le même problème et je l'ai résolu en utilisant certaines capacités. Pendant que vous utilisez FirefoxDriver, vous pouvez définir "chevauchementCheckDisabled" sur vrai pour résoudre votre problème. xxx


1 commentaires

Après avoir utilisé différentes façons de cliquer sur le point de passer à ce sujet, celui-ci ne m'aide que.



0
votes

Essayez de maximiser le navigateur lorsque vous travaillez avec des résolutions supérieures à 1024x768. Cela fonctionne pour moi dans JS.

 driver.manage().window().maximize();


0 commentaires

1
votes

Cette erreur COUD COUD OCUR Lorsque vous faites par exemple de nombreux accès à un service, par exemple si vous faites comme je suis un bot .... Par exemple Instagram vous bloquera pendant une certaine période si vous êtes bloqué et ensuite Cette erreur COUD COUVER OCOUR ne permettant pas de cliquer sur certains éléments de la page.

Essayez de faire une autre activité et passez à un VPN Becouse probablement votre adresse IP est déjà marquée comme bloquée


0 commentaires