我正在尝试以管理员身份登录网站,然后导航到另一个页面(门户网站),需要此管理员登录才能显示数据。我不认为我可以访问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())
});
});
答案 0 :(得分:0)
所以我发现它就像运行driver.navigate()方法一样简单,我想转到新页面:
driver.navigate()到( 'https://www.somesite.com/#');
由于网站上的cookie设置,我无法使用webdriver访问它们,因此我每次都必须输入密码。
我在尝试选择元素时等待页面上的ajax调用时被绊倒了,这个方法有帮助:
driver.manage()超时()implicitlyWait(3000);
希望这有助于那里的人!