gpt4 book ai didi

javascript - Protractor 测试: options to force refresh when URL hash changes

转载 作者:行者123 更新时间:2023-12-03 02:15:41 24 4
gpt4 key购买 nike

在运行一些 Protractor 测试时,我需要在测试之间刷新浏览器。我注意到,当仅 URL 哈希更改( see here )时,这不起作用。

我尝试调用 .refresh().navigate.refresh() 来强制浏览器刷新。那似乎并没有起到任何作用。可能是因为上面提到的问题,因为只有哈希值发生了变化?

我尝试了.restart(),它确实打开了一个新的浏览器,但它似乎重新启动了测试,并且做的事情比我想要的要多。

我幸运的最接近的选择是对完全不同的 URL 执行 .get() ,然后执行另一个哈希更改的 .get()网址(下面的代码)。这在浏览器中实现了我想要的功能,但由于某种原因,第二个 .get() 挂起。

如何获取 URL 哈希更改以强制刷新?

beforeEach(async () => {
//First GET (to a different hash)
await browser.driver.get(browser.baseUrl);
});

it('should load ID from URL', async () => {
//Load the signup URL
let fakeId = '12345abcd';
console.log("step 1: " + new Date().toISOString());
await browser.driver.get(browser.baseUrl + `#/signup?id=${fakeId}`);

//BROWSER NAVIGATES PROPERLY, BUT NEVER GET THE CONSOLE OUTPUT BELOW
console.log("step 2: " + new Date().toISOString());

var loginButton = element(by.id('btnLoginHeader'));
var untilLoginVisible = ExpectedConditions.visibilityOf(loginButton);
await browser.wait(untilLoginVisible, 20000);

//NEVER GET THE CONSOLE OUTPUT BELOW
console.log("step 3: " + new Date().toISOString());

//<snip>
expect(true);
});

最佳答案

每当您更改“位置”对象的哈希属性时,浏览器都不会刷新页面。

我认为在这种情况下,可以通过在哈希之前的路径中添加一些“查询字符串”来强制整个页面重新加载,这肯定会加载页面。

类似的事情:

    await browser.driver.get(browser.baseUrl + `?_fake=1#/signup?id=${fakeId}`);

关于javascript - Protractor 测试: options to force refresh when URL hash changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49373000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com