在webdriver任务期间导航到另一个URL

时间:2017-06-23 11:11:14

标签: node.js selenium-webdriver automated-tests mocha chai

我正在尝试以管理员身份登录网站,然后导航到另一个页面(门户网站),需要此管理员登录才能显示数据。我不认为我可以访问cookie,因为访问我之前读过的https cookie问题(如果我错了,请纠正我)。

所以我目前的解决方案是在登录过程完成后立即输入URL,然后继续执行其他任务。你能告诉我可以使用的方法/功能吗?如果有更好的方法可以做到这一点,我也很高兴听到这些!

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("user@example.com");
    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())
});
});

1 个答案:

答案 0 :(得分:0)

所以我发现它就像运行driver.navigate()方法一样简单,我想转到新页面:

driver.navigate()到( 'https://www.somesite.com/#');

由于网站上的cookie设置,我无法使用webdriver访问它们,因此我每次都必须输入密码。

我在尝试选择元素时等待页面上的ajax调用时被绊倒了,这个方法有帮助:

driver.manage()超时()implicitlyWait(3000);

希望这有助于那里的人!