मैं (2) ई 2e ककड़ी परीक्षण चलाने के लिए प्रोटैक्टर का उपयोग कर रहा हूं। मुझे एक वेब-ऐप मिला जो कोणीय जेएस आधारित है। मैं एक असली एंड्रॉइड डिवाइस पर परीक्षण को दूरस्थ रूप से चलाने के लिए एपियम का उपयोग कर रहा हूं।प्रोटैक्टर का इंतजारफॉरएंगुलर() कोणीय-वेबएप (वास्तविक डिवाइस पर एपियम/क्रोम) पर असफल रहता है
windows8.1
[email protected] (with submodule [email protected])
[email protected]
android device with 4.4.4
मेरी चांदा विन्यास (अर्क), https://github.com/angular/protractor/blob/master/docs/browser-setup.md करने के लिए इसी:: यहाँ संस्करणों मैं उपयोग कर रहा हूँ रहे हैं
currentDeviceUDID = (...);
var appToTestURL = 'http://my.website.com:9000/app/index.html';
exports.config = {
seleniumAddress: 'http://localhost:4723/wd/hub';
chromeOnly: false,
specs: ['features/sample.feature'],
capabilities: {
browserName: 'chrome',
'appium-version': '1.0',
platformName: 'Android',
platformVersion: '4.4.4',
udid: currentDeviceUDID
},
baseUrl: appToTestURL
framework: 'cucumber',
cucumberOpts: {
require: 'features/stepDefinitionsSample.js',
tags: '@dev',
format: 'progress'
},
// configuring wd in onPrepare
onPrepare: function() {
var wd = require('wd'),
protractor = require('protractor'),
wdBridge = require('wd-bridge')(protractor, wd);
wdBridge.initFromProtractor(exports.config);
},
allScriptsTimeout: 30000,
getPageTimeout: 30000
};
आप देख सकते हैं, मैं के साथ चांदा के webdriver यूआरएल जगह ले ली है एपियम वेबड्राइवर। मैं "appium &" के साथ कमांडलाइन से appium शुरू करते हैं, तो मैं "protactor cucumbertest.conf"
फोन क्रोम ब्राउज़र को खोलता है और यूआरएल मैं के साथ इसे देने के लिए नेविगेट करता है "browser.get (यूआरएल)" के साथ परीक्षण चलाने कॉल waitForAngular() है, जो अतुल्यकालिक रूप से लोड करने के लिए वेबसाइट के लिए और सभी खुले http अनुरोध पर इंतज़ार कर रहा है (जहाँ तक मैं समझता हूँ), फोन पर सफलतापूर्वक क्रियान्वित नहीं किया गया है:
समस्या निम्नलिखित है। फोन कॉल करने के लिए प्रतिक्रिया नहीं करता, और webdriver प्रॉक्सी एक 500
रिटर्न https://github.com/angular/protractor/issues/1358 के अनुरूप, मैं कि waitForAngular() फ़ंक्शन (कॉल
['getCurrentUrl', 'getPageSource', 'getTitle'];
waitForAngular के पीछे में चांदा में मिलाया जाता है समझ में आ
functions.waitForAngular = function(selector, callback) {
var el = document.querySelector(selector);
try {
if (angular.getTestability) {
angular.getTestability(el).whenStable(callback);
} else {
angular.element(el).injector().get('$browser').
notifyWhenNoOutstandingRequests(callback);
}
} catch (e) {
callback(e);
}
};
अतिरिक्त जानकारी:) फ़ाइल protractor.js में नीचे समारोह है, जो फोन करने के लिए प्रॉक्सी है जब मैं Stim वेबड्राइवर (ब्राउज़र) ऑब्जेक्ट पर एक त्रुटि को अनुकरण करें, त्रुटि संदेश प्रोटैक्टर निर्देशिका के अंदर chromedriver.exe को इंगित करता है। मुझे समझ में नहीं आ रहा है कि त्रुटि एपियम के क्रोमड्राइवर
इतनी tldr से क्यों नहीं है; सफल कॉल प्रतीक्षा किए बिना प्रतीक्षा करें, मैं फ़ोन पर पृष्ठ पर एक्सेस तत्वों को स्थिर (स्थिर या बिल्कुल नहीं) कर सकता हूं, इसलिए परीक्षण नहीं कर रहा हूं। हो सकता है कि यहां कुछ मौलिक विन्यास विवरण गलत समझा जाए, सभी संकेतों का स्वागत है।
संपादित करें: जोड़ा appium सर्वर यहां लॉग: http://pastebin.com/vqBGUdXH
आपकी क्षमताओं सभी सही हैं और एपियम सर्वर सही तरीके से काम कर रहा है। सभी आदेशों को संसाधित करने के बाद 500 लौटा दिया गया है। चर्चा.appium.io पर पोस्ट करने का प्रयास करें आपको – sheeptest