1

У меня есть модальный для загрузки изображений. Когда я нажимаю на загрузку изображения, он переходит на локальный компьютер, а затем выбирает указанное изображение. Я получаю сообщение об ошибке после перехода на локальный компьютер.Элемент не кликается в точке в транспортирнике

ошибка:

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.

и мой код, чтобы загрузить изображение:

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

Прежде всего отформатируйте свой код. Элемент, с которым вы пытаетесь взаимодействовать, находится за чем-то другим, поэтому транспортир не может щелкнуть нужный элемент. – FCin

+0

обновил формат. @FCin – Ajay

+0

перед отправкой файла остановите свой тест ('browser.pause()') и посмотрите, что-то блокирует ваше представление. – FCin

ответ

-1

Вы можете использовать ожидания элемента, чтобы быть интерактивными

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

Вы можете выбрать элемент любого локатора в этом случае я выбираю его по xpath, и