Node.js 将url保存到字符串nightwatch

Node.js 将url保存到字符串nightwatch,node.js,selenium,selenium-webdriver,nightwatch.js,Node.js,Selenium,Selenium Webdriver,Nightwatch.js,我正在为一个营销sim卡自动化QA测试。我正在node.js中使用BrowserStack和Nightwatch 我想在运行期间跳转到特定的网页-问题是,URL中的每个测试运行都会更改一个唯一的课程代码(例如,../8759309/…)。本课程代码在我想阅读的所有页面中保持不变。在本例中,我希望将当前URL(www.domain.com/8759309/page-I-have)保存为字符串,以便插入课程代码并跳转到下一页(www.domain.com/8675309/page-I-want) 这

我正在为一个营销sim卡自动化QA测试。我正在node.js中使用BrowserStack和Nightwatch

我想在运行期间跳转到特定的网页-问题是,URL中的每个测试运行都会更改一个唯一的课程代码(例如,../8759309/…)。本课程代码在我想阅读的所有页面中保持不变。在本例中,我希望将当前URL(www.domain.com/8759309/page-I-have)保存为字符串,以便插入课程代码并跳转到下一页(www.domain.com/8675309/page-I-want)

这个(browser.getCurrentUrl())的量角器中似乎有一个函数,但我似乎找不到一个用于夜间监视的函数


我的问题是,NightWatch中是否存在这样的功能,如果没有,您能想出任何解决方法吗?

NightWatch没有内置这种命令。因为听起来您会经常使用该功能,所以我要做的是为您编写一个javascript命令来完成这项工作。您甚至可以称之为
.getCurrentUrl
。这里有一些关于创建自定义命令的文档:


您可以尝试使用
window.location.href
检索窗口的url,然后将其另存为字符串。

在Nightwatch中有一种方法,但您没有注意到,只需使用browser.url()而不带参数,但回调可以获取当前url

var savedUrl='';
browser.url(function(result){
  savedUrl=result;
})
查看api以了解详细信息:

您还需要取消对值的引用

var savedUrl='';
browser.url(function(result){
  savedUrl=result.value;
})
我必须使用才能使用当前url变量

let currentUrl;
browser.url(函数(结果){
currentUrl=result.value;
});
browser.perform(完成=>{
console.log(currentUrl);
完成();

});如果您知道域、课程和最后一页的名称。。。有什么原因你不能把这三个放在一起,从头开始创建URL吗?就是这样,我不知道课程代码,因为它每次都在变化。我猜你可以通过解析包含课程代码的页面上的链接得到它,例如,从A标记获取href并解析出课程#。如何在函数范围之外使用此变量?