将url保存到字符串nightwatch

时间:2017-09-20 22:02:30

标签: node.js selenium selenium-webdriver nightwatch.js

我正在自动化营销模拟的QA测试。我在node.js中使用BrowserStack和Nightwatch

我想在运行期间跳转到特定的网页 - 麻烦的是,有一个独特的课程代码会随着URL中的每次测试运行而改变(例如...... / 8759309 / ...)。这门课程代码在我想去的所有页面中保持不变。在此示例中,我想将当前URL(www.domain.com/8759309/page-i-have)保存为字符串,以便我可以插入课程代码并跳转到下一页(www.domain.com/ 8675309 /页-I-想要的)。

在量角器中似乎有一个函数(browser.getCurrentUrl())但我似乎找不到一个用于NightWatch的函数。

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

4 个答案:

答案 0 :(得分:1)

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

var savedUrl='';
browser.url(function(result){
  savedUrl=result;
})

查看api了解详情:
http://nightwatchjs.org/api#url

答案 1 :(得分:0)

Nightwatch并没有内置这样的命令。因为听起来你很多时候都在使用这个功能,我会做的就是写一个javascript命令来完成这项工作,为你做。你甚至可以称之为.getCurrentUrl。这里有一些关于创建自定义命令的文档:http://nightwatchjs.org/guide#writing-custom-commands

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

答案 2 :(得分:0)

您还需要取消引用值

cout << "R\\C" << endl;

答案 3 :(得分:0)

我必须使用.perform()才能使用当前的url变量。

let currentUrl;
browser.url(function(result) {
  currentUrl = result.value;
});
browser.perform(done => {
  console.log(currentUrl);
  done();
});