1

画像をアップロードするモーダルがあります。画像のアップロードをクリックすると、ローカルコンピューターに移動してから、指定された画像を選択します。ローカル コンピューターに移動した後、エラーが発生します。

エラー:

メッセージ: 失敗: 不明なエラー: 要素はポイント (736、187) でクリックできません。他の要素がクリックを受け取る: ... (セッション情報: chrome=54.0.2840.99) (ドライバー情報: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT 10.0.14393 x86_64) スタック: WebDriverError: 不明なエラー: 要素ポイント(736、187)でクリックできません。他の要素はクリックを受け取ります: ... (セッション情報: chrome=54.0.2840.99) (ドライバー情報: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT 10.0.14393 x86_64) at WebDriverError (C:\Users\) 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) at 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\新しい ManagedPromise の index.js:94:23 (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) From: タスク: オブジェクトの制御フローで (「ダッシュボードで」) 実行します。(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

待機要素を使用してクリック可能にすることができます

 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 に答える