1

我有一个上传图片的模式。当我点击上传图片时,它正在导航到本地计算机,然后选择指定的图片。导航到本地计算机后出现错误。

错误:

消息:失败:未知错误:元素在点 (736, 187) 处不可点击。其他元素将收到点击:...(会话信息:chrome=54.0.2840.99)(驱动程序信息:chromedriver=2.25.426923(0390b88869384d6eb0d5d09729679f934aab9eed),平台=Windows NT 10.0.14393 x86_64)堆栈:WebDriverError:未知错误:元素在点 (736, 187) 处不可点击。其他元素将收到点击:... (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) 在 Object.checkLegacyResponse (C: \Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.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\npm\node_modules\protractor\built\element.js :101:30) 在 ElementFinder.(匿名函数) [点击] (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\promise.js:1082:7) 在 controlFlowExecute (C:\Users\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\promise.js:2913:14 ) 在 TaskQueue.executeNext_ (C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2896:21) 在 asyncRun (C:\Users\Telekha\AppData \Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2820:25)来自:任务:在对象的控制流中运行它(“在仪表板上”)。(C:\Users\Telekha\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:79:14)来自异步测试:套件出错。(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();
4

2 回答 2

0

包括这个声明:

browser.driver.manage().window().maximize();进入

onPrepare()文件方法protractor.conf.js如下所示。

onPrepare () {
 browser.driver.manage().window().maximize();
}
于 2019-01-30T06:04:12.517 回答
0

您可以使用等待元素可点击

 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 选择它,并且

于 2016-11-24T14:45:55.337 回答