私は幅と高さの画面を定義するには、このプロパティを使用します。方法で分度器:画面のサイズ
var width = 1280;
var height = 600;
browser.driver.manage().window().setSize(width, height);
onPrepare()が、このコードはいくつかのテストのために、ないそれらのすべてのための機能です。何故ですか?私はテストで画面のサイズを再定義しません。
よろしく、
ジョニー
編集: ノードの私のバージョンは2.5.1 Protactorと0.10.33です。
分度器のconf:
// Fichier de configuration pour Angular
exports.config = {
sauceUser: "",
sauceKey: "",
capabilities: {
'browserName': 'chrome',
'name': 'Protractor Circle CI'
},
specs: ["src/Bg/*Bundle/Tests/Angular/*Test.js"],
exclude: ['src/Bg/*Bundle/Tests/Angular/*AuthTest.js', 'src/Bg/*Bundle/Tests/Angular/*RapideTest.js'],
baseUrl: "http://bluegrey.circle.dev:8080/app_ci.php",
onPrepare: function() {
browser.driver.get('http://bluegrey.circle.dev:8080/app_ci.php/fr_FR/login');
browser.driver.findElement(by.id('username')).sendKeys('[email protected]');
browser.driver.findElement(by.id('password')).sendKeys('userpass');
browser.driver.findElement(by.id('_submit')).click();
return browser.driver.wait(function() {
return browser.driver.getCurrentUrl().then(function(url) {
return /dashboard/.test(url);
});
}, 600000);
var width = 1280;
var height = 600;
browser.driver.manage().window().setSize(width, height);
},
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000
}
};
働くテストの例:
describe("Carrière > Centre d'interêt", function() {
describe("Tests d'ajout et de suppression d'un centre d'interêt", function() {
beforeEach(function() {
// on compte le nombre d'element
elements = element.all(by.css('.bloc__defaut'));
elements.count().then(function (nbElementP) {
nbElement = nbElementP;
});
}, 60000);
it('GET /app_ci.php/fr_FR/dashboard/career/interest', function() {
browser.get('/app_ci.php/fr_FR/dashboard/career/interest');
}, 60000);
it("Ajout du centre d'interêt", function() {
// On clique sur ajouter
element(by.css('.btn-add-js')).click();
// On remplit le formulaire
browser.findElement(by.id('CentreInteret_intitule')).sendKeys('CentreInteret_intitule');
element(by.css('.u-btn-inverse')).click();
// on re-compte le nombre d'element
expect(elements.count()).toEqual(nbElement+1);
}, 60000);
it("Suppression d'un centre d'interêt", function() {
// On regarde si toutes les fenetres de suppressions sont cachés au début
expect(element(by.css('.bloc__suppression')).isDisplayed()).toBeFalsy();
// On clique sur supprimer
element(by.css('.u-btn-alert')).click();
// On regarde si la fenetre de confirmation de suppression est présente
expect(element(by.css('.bloc__suppression')).isDisplayed()).toBeTruthy();
// On clique sur supprimer
element(by.css('.btn-supprimer-js')).click();
// On regarde si l'element est caché
expect(element(by.css('.bloc__suppression')).isDisplayed()).toBeFalsy();
}, 60000);
});
});
そして失敗したテスト:
describe('Carrière > Experience Pro', function() {
describe("Tests d'ajout et de suppression d'une experience pro", function() {
beforeEach(function() {
// on compte le nombre d'element
elements = element.all(by.css('.bloc__defaut'));
elements.count().then(function (nbElementP) {
nbElement = nbElementP;
});
}, 60000);
it('GET /app_ci.php/fr_FR/dashboard/career/professionalexperiences', function() {
browser.get('/app_ci.php/fr_FR/dashboard/career/professionalexperiences');
}, 60000);
it('Vérification si lors du clique de la checkbox le champs date se désactive', function() {
// On clique sur ajouter
element(by.css('.btn-add-js')).click();
// On regarde si par defaut les champs ne sont pas désactivés (= active)
expect(element(by.id('ExperiencePro_dateFin_day')).getAttribute('disabled')).toBeFalsy();
expect(element(by.id('ExperiencePro_dateFin_month')).getAttribute('disabled')).toBeFalsy();
expect(element(by.id('ExperiencePro_dateFin_year')).getAttribute('disabled')).toBeFalsy();
// On clique
element(by.id('ExperiencePro_enPosteajout')).click();
// On regarde si les champs sont desactivés
expect(element(by.id('ExperiencePro_dateFin_day')).getAttribute('disabled')).toBeTruthy();
expect(element(by.id('ExperiencePro_dateFin_month')).getAttribute('disabled')).toBeTruthy();
expect(element(by.id('ExperiencePro_dateFin_year')).getAttribute('disabled')).toBeTruthy();
// On regarde s'ils se redésactive
element(by.id('ExperiencePro_enPosteajout')).click();
expect(element(by.id('ExperiencePro_dateFin_day')).getAttribute('disabled')).toBeFalsy();
expect(element(by.id('ExperiencePro_dateFin_month')).getAttribute('disabled')).toBeFalsy();
expect(element(by.id('ExperiencePro_dateFin_year')).getAttribute('disabled')).toBeFalsy();
}, 120000);
it("Réglage du format de date", function() {
// Format mois/année
element(by.id('reglageDate-js')).click();
element(by.id('ExperiencePro_formatDate_1')).click();
expect(element(by.id('ExperiencePro_dateDebut_day')).isDisplayed()).toBeFalsy();
expect(element(by.id('ExperiencePro_dateDebut_month')).isDisplayed()).toBeTruthy();
expect(element(by.id('ExperiencePro_dateDebut_year')).isDisplayed()).toBeTruthy();
// Format année
element(by.id('reglageDate-js')).click();
element(by.id('ExperiencePro_formatDate_2')).click();
expect(element(by.id('ExperiencePro_dateDebut_day')).isDisplayed()).toBeFalsy();
expect(element(by.id('ExperiencePro_dateDebut_month')).isDisplayed()).toBeFalsy();
expect(element(by.id('ExperiencePro_dateDebut_year')).isDisplayed()).toBeTruthy();
// Format année
element(by.id('reglageDate-js')).click();
element(by.id('ExperiencePro_formatDate_0')).click();
expect(element(by.id('ExperiencePro_dateDebut_day')).isDisplayed()).toBeTruthy();
expect(element(by.id('ExperiencePro_dateDebut_month')).isDisplayed()).toBeTruthy();
expect(element(by.id('ExperiencePro_dateDebut_year')).isDisplayed()).toBeTruthy();
}, 60000);
it("Ajout de l'experience", function() {
// On remplit le formulaire
browser.findElement(protractor.By.css('#ExperiencePro_dateDebut_day option[value="1"]')).click();
browser.findElement(protractor.By.css('#ExperiencePro_dateDebut_month option[value="12"]')).click();
browser.findElement(protractor.By.css('#ExperiencePro_dateDebut_year option[value="2000"]')).click();
element(by.id('ExperiencePro_enPosteajout')).click();
element(by.id('reglageDate-js')).click();
element(by.id('ExperiencePro_formatDate_0')).click();
browser.findElement(by.id('ExperiencePro_poste-ajout')).sendKeys('ExperiencePro_poste');
browser.findElement(by.id('ExperiencePro_entreprise')).sendKeys('ExperiencePro_entreprise');
browser.findElement(by.id('ExperiencePro_ville')).sendKeys('ExperiencePro_ville');
element(by.css('.u-btn-inverse')).click();
// on re-compte le nombre d'element
expect(elements.count()).toEqual(nbElement+1);
}, 60000);
it("Suppression d'une experience", function() {
expect(element(by.css('.bloc__suppression')).isDisplayed()).toBeFalsy();
// On clique sur supprimer
element(by.css('.u-btn-alert')).click();
// On regarde si la fenetre de confirmation de suppression est présente
expect(element(by.css('.bloc__suppression')).isDisplayed()).toBeTruthy();
// On clique sur supprimer
element(by.css('.btn-supprimer-js')).click();
// On regarde si la fenetre affirmant la suppression est apparue
expect(element(by.css('.bloc__suppression')).isDisplayed()).toBeFalsy();
}, 60000);
});
});
編集2: それは多分、ビューポートの問題です画面サイズの問題の代わりに。私はChrome、Firefox、SauceLabsを搭載したSafariを試しましたが、それは同じ問題です。
あなたが合格と不合格仕様の例を提供してもらえますか?これらのテストでは、ウィンドウサイズが変更されるようなものがなければなりません:\。また、1.ノードバージョン2.分度器バージョン3を提供することもできますか?分度器の設定? –
ご意見ありがとうございます。それで、私は私のポストを編集しました! – johnnyevolunium