2017-06-23 1 views
0

J'essaie de me connecter à un site Web en tant qu'admin, puis de naviguer vers une autre page (un portail) qui nécessite au préalable cette connexion admin pour afficher les données. Je ne pense pas pouvoir accéder aux cookies à cause d'un problème d'accès aux cookies https que j'ai lu plus tôt (corrigez-moi si je me trompe). Donc, ma solution actuelle consiste à entrer l'URL dès que le processus de connexion est terminé, puis continuer avec d'autres tâches. Pourriez-vous s'il vous plaît donner des conseils sur les méthodes/fonctions que je peux utiliser pour faire cela? S'il y a de meilleures façons de le faire, je serais également heureux d'en entendre parler!Naviguer vers une autre URL pendant une tâche Webdriver

var webdriver = require("selenium-webdriver"); 
var By = require("selenium-webdriver").By; 
var until = require("selenium-webdriver").until; 
var assert = require("chai").assert; 
var filename = "img"; 
var fs = require('fs'); 
var err = "error caught!"; 
var testName = "get_login_cookies"; 

var driver = new webdriver.Builder() 
    .forBrowser('chrome') 
    .build(); 

describe('email register', function() { 
    this.timeout(25000); 

before(function(done) { 
    driver.navigate().to('https://www.perlego.com/#'); 
    driver.manage().deleteAllCookies; 
    driver.manage().window().maximize() 
    .then(() => done()) 
}); 

it('logs in with admin user and gets cookies', (done) => { 

    driver.findElement(By.name('email')).sendKeys("[email protected]"); 
    driver.findElement(By.css('#password')).sendKeys("examplePassword"); 
    driver.findElement(By.css('.login-button')).click(); 

    // some code here to navigate to other page via url 

    // runs remainder of tests 

}); 

after(function(done) { 
    driver.quit() 
    .then(() => done()) 
}); 
}); 

Répondre

0

Je trouve qu'il était aussi simple que l'exécution de la méthode driver.navigate() où je voulais aller à une nouvelle page.

driver.navigate() à ('https://www.somesite.com/#') ; En raison des paramètres des cookies sur le site, je n'ai pas pu y accéder avec le Webdriver, je devais donc entrer le mot de passe à chaque fois.

je trébuché par l'attente pour les appels ajax sur la page lorsque vous essayez de sélectionner des éléments, cette méthode a permis:

driver.manage() les délais d'attente() implicitlyWait (3000);..

J'espère que cela aide quelqu'un!