web-dev-qa-db-fra.com

L'élément n'est pas cliquable au point. Un autre élément recevrait le clic:

J'essaie de cliquer sur un bouton en haut de la page.J'utilise le sélecteur CSS et tout fonctionne parfaitement lorsque je l'exécute dans mon Eclipse local. Mais lorsque j'essaie de l'exécuter sur le serveur Jenkins sur mon ordinateur local, il échoue. , en disant élément non cliquable. Lorsque j'ai vu la capture d'écran de l'échec du test sur Jenkins, j'ai constaté que l'en-tête chevauchait le bouton sur lequel je voulais cliquer . J'ai presque tout essayé avec XPath, CSS, déplacer l'élément, déplacer la souris .Mais je ne peux toujours pas le réparer, aidez-moi s'il vous plaît.

Je suis tring pour cliquer sur ajouter buttoun

org.openqa.Selenium.WebDriverException: Element is not clickable at point (775.25, 10.166671752929688). Other element would receive the click: <div class="globalHeader-UtilTop"></div>
Command duration or timeout: 69 milliseconds
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: Host', ip: '', os.name: 'Windows 7', os.Arch: 'AMD64', os.version: '6.1', Java.version: '1.7.0_80'

<div class="Componet-intels**strong text**-Container">
<div class="Componet-intels-Container-Header">
<div class="Componet-intels-Container-Content">
<div class="Componet-intels-Container-Content-Row">
<span class="Componet-intels-Item"> Item # </span>
<span class="Componet-intels-Text-Item">
<span class="Componet-intels-Lable-Quantity"> Qty: </span>
<span class="Componet-intels-Text-Quantity">
<span class="Componet-intels-Button">
**<input class="Componet-intelsButtonIcon" type="button" value="Add">**
</span>
</div>
12
Samantha
Element is not clickable at point (775.25, 10.166671752929688). Other element would receive the click: <div class="globalHeader-UtilTop"></div>

Il est clairement indiqué que l'élément sur lequel vous souhaitez cliquer est masqué par un autre élément div dans ce cas, qui recevrait le clic.

Je pense que c'est un problème avec l'interface utilisateur et en-tête ne devrait pas cacher l'élément, mais vous pouvez essayer quelques choses: 1. Agrandissez la fenêtre du navigateur à partir de webdriver pour voir si l'en-tête cache toujours l'élément.

driver.manage().window().maximize() 
  1. Utiliser JavaScript pour cliquer sur l'élément WebElement element = driver.findElement(By.<locator>); JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click()", element)
23
Satish Gupta

Dans mon cas, j'ai dû cliquer sur un bouton qui ne serait visible qu'après le chargement de quelques graphiques, puis sur une image ajax. Les étapes ci-dessous m'ont aidé à résoudre le problème:

  1. Identifiez le xpath/css qui disparaît une fois l'appel ajax terminé et attendez explicitement qu'il soit invisible-wait.until(ExpectedConditions.invisibilityOf(element));

  2. Une autre attente explicite pour que le bouton soit clickable-wait.until(ExpectedConditions.elementToBeClickable(element));

  3. Utilisez javascript pour cliquer sur le bouton-

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

Si cela ne fonctionne toujours pas, essayez d’insérer une attente implicite entre les étapes 1 et 2.

0
Amit

utiliser JavascriptExecutor .: -

WebElement element = driver.findElement(By.<locator>);

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