Элемент не кликабелен в точке транспортира
У меня есть модал для загрузки изображений. Когда я нажимаю на кнопку "Загрузить изображение", он перемещается на локальный компьютер, а затем выбирает указанное изображение. Я получаю сообщение об ошибке после перехода на локальный компьютер.
ошибка:
Сообщение: Ошибка: неизвестна ошибка: элемент не активен в точке (736, 187). Другой элемент получит щелчок: ... (Информация о сеансе: chrome=54.0.2840.99) (Информация о драйвере: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed), платформа =Windows NT 10.0.14393 x86_64) Стек: ошибка WebDriverError: неизвестно: ошибка: неизвестно не активируется в точке (736, 187). Другой элемент получит щелчок: ... (Информация о сеансе: chrome=54.0.2840.99) (Информация о драйвере: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed), платформа =Windows NT 10.0.14393 x86_64) в WebDriverError (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:27:5) в Object.checkLegacyResponse (C:\Users\Telekha\AppData\Roaming\npm\node_modules\ протрактор \node_modules\selenium-webdriver\lib\error.js:639:15) в parseHttpResponse (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\http\index.js:538:13) в client_.send.then.response (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\http\index.js:472:11) в ManagedPromise.invokeCallback_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\ обещание: js:1379:14) в TaskQueue.execute_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\ транспортир \ node_ modules \ selenium-webdriver \ lib \ обещание.js:2913:14) в TaskQueue.executeNext_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\ обещание: js:2896:21) в asyncRun (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\prom.js:2820:25) в C: \ Users \ Telekha \ AppData \ Роуминг \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ обещание.js:639:7 в process._tickCallback (внутренний /process/next_tick.js:103:7) От: Task: WebElement.click() в Driver.schedule (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:377:17) в WebElement.schedule_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:1744:25) в WebElement.click (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:1845:17) на actionFn (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\built\element.js:99:44) в Array.map (родной) в C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\built\element.js:406:46 в ManagedPromise.invokeCallback_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\prom.js:1379:14) в TaskQueue.execute_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\ обещание: js: 2913: 14) в TaskQueue.executeNext_ (C: \ Users \ Telekha \ AppData \ Roaming \ npm \ node_modules \ протрактор \node_modules\selenium-webdriver\lib\promijs:2896:21) в asyncRun (C: \ Users \ Telekha \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ selenium-webdriver \ lib \ обещание.js:2775:27) Ошибка в ElementArrayFinder.applyAction_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\built\element.js:403:27) в ElementArrayFinder._this.(Анонимная функция) [по щелчку] (C:\Users\Telekha\AppData\Roaming\ НПМ \ node_modules \ транспортир \ встроенный \element.js:101:30) в ElementFinder.(Анонимная функция) [as click] (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\built\element.js:740:22) в Object. (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\example\loginpost.js:40:51) в C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:94:23 в новом ManagedPromise (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\prom.js:1082:7) в controlFlowExecute (C:\ Пользователи \Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:80:18) в TaskQueue.execute_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\ обещание.js:2913:14) в TaskQueue.executeNext_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\ обещание: js:2896:21) at asyncRun (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\prom.js:2820:25) От: Задача: Запустить ее ("на панели инструментов") в потоке управления на объекте. (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:79:14) Из асинхронного теста: ошибка в Suite. (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\example\loginpost.js:16:2) в объекте. (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\example\loginpost.js:1:1) в модуле Module._compile (module.js:570:32) в Object.Module._extensions..js (module.js:579:10) в Module.load (module.js:487:32) в tryModuleLoad (module.js: 446: 12)
2 спецификации, 1 сбой.
и мой код для загрузки изображения:
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 ответ
Включить это заявление:
browser.driver.manage().window().maximize();
в
onPrepare()
метод protractor.conf.js
файл, как указано ниже.
onPrepare () {
browser.driver.manage().window().maximize();
}
Вы можете использовать элемент ожидания, чтобы быть кликабельным
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, и