1

J'ai un modal pour télécharger des images. Quand je clique sur télécharger l'image, il navigue vers l'ordinateur local, puis choisit l'image spécifiée. Je reçois une erreur après la navigation sur l'ordinateur local.L'élément n'est pas cliquable au point dans le rapporteur

erreur:

Message: Failed: unknown error: Element is not clickable at point (736, 187). Other element would receive the click: ... (Session info: chrome=54.0.2840.99) (Driver info: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT 10.0.14393 x86_64) Stack: WebDriverError: unknown error: Element is not clickable at point (736, 187). Other element would receive the click: ... (Session info: chrome=54.0.2840.99) (Driver info: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT 10.0.14393 x86_64) at WebDriverError (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:27:5) at Object.checkLegacyResponse (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:639:15) at parseHttpResponse (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\http\index.js:538:13) at client_.send.then.response (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\http\index.js:472:11) at ManagedPromise.invokeCallback_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1379:14) at TaskQueue.execute_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2913:14) at TaskQueue.executeNext_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2896:21) at asyncRun (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2820:25) at C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:639:7 at process._tickCallback (internal/process/next_tick.js:103:7) From: Task: WebElement.click() at Driver.schedule (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:377:17) at WebElement.schedule_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:1744:25) at WebElement.click (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:1845:17) at actionFn (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\built\element.js:99:44) at Array.map (native) at C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\built\element.js:406:46 at ManagedPromise.invokeCallback_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1379:14) at TaskQueue.execute_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2913:14) at TaskQueue.executeNext_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2896:21) at asyncRun (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2775:27)Error at ElementArrayFinder.applyAction_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\built\element.js:403:27) at ElementArrayFinder._this.(anonymous function) [as click] (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\built\element.js:101:30) at ElementFinder.(anonymous function) [as click] (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\built\element.js:740:22) at Object. (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\example\loginpost.js:40:51) at C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:94:23 at new ManagedPromise (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:1082:7) at controlFlowExecute (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:80:18) at TaskQueue.execute_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2913:14) at TaskQueue.executeNext_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2896:21) at asyncRun (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2820:25) From: Task: Run it("on dashboard") in control flow at Object. (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:79:14) From asynchronous test: Error at Suite. (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\example\loginpost.js:16:2) at Object. (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\example\loginpost.js:1:1) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12)

2 specs, 1 failure.

et mon code pour télécharger l'image:

element(by.css('[ng-click="imagePost()"]')).click(); 
browser.sleep(3000); 
element(by.model("files")).click(); 
var path = require('path'); var fileToUpload = 'Desktop:/mdkg.jpg'; 
var absolutePath = path.resolve(fileToUpload); 
var button = element(by.css('[ngf-select]')); 
button.click(); 
var input = element(by.css('input[type="file"]'));  
input.sendKeys(absolutePath); 
element(by.buttonText('Post Image')).click(); 
+1

Tout d'abord, formatez votre code. L'élément avec lequel vous essayez d'interagir est derrière quelque chose d'autre, c'est pourquoi le rapporteur ne peut pas cliquer sur l'élément désiré. – FCin

+0

a mis à jour le format. @FCin – Ajay

+0

suspend votre test ('browser.pause()') avant d'envoyer le fichier et de voir si quelque chose bloque votre vue. – FCin

Répondre

-1

Vous pouvez utiliser l'élément d'attente pour être cliquable

var EC = protractor.ExpectedConditions; 
var element = element(by.xpath([xpath_locator])); 
browser.wait(EC.elementToBeClickable(element(by.xpath([xpath_locator]))), 30000).then(function() { 
       element.click(); 
}); 

Vous pouvez sélectionner l'élément par un localisateur dans ce cas, je le sélectionne par xpath, et