首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NightwatchJS未传递变量

NightwatchJS未传递变量
EN

Stack Overflow用户
提问于 2021-05-26 10:11:23
回答 1查看 27关注 0票数 0

出于作用域的目的,我已经分隔了变量,我可以用url1中的各个DOM元素填充所有变量,但是当我试图将它们传递给url2字段时,它们被设置为undefined,就像从未设置过变量一样。然而,console.log可以工作。我也向.setValue('#address-serviceability-form', '', '', function(e){ // set the value here})传递了一个函数,但是我仍然没有定义...这是变量作用域问题吗?

代码语言:javascript
复制
describe('Ecosia.org Demo', function() {
  var address ='';
  var streetNumber = '';
  var city = '';
  var stateAndZip = '';
  var state = ''
  var zip = '';

before(browser => browser.url('url1.com'));

test('Extract random address', function (browser) {

browser
  .getText('.rand_large li:first-child', function(result) {
    address = result.value.split("\n");
    streetNumber = address[0];
    console.log('streetNumber', streetNumber) //this works and logs correctly
    city = address[1].split(",")[0];
    stateAndZip = address[1].split(",")[1];
    state = stateAndZip.split(" ")[1];
    zip = stateAndZip.split(" ")[2];

  })
  .url('url2.com')
  .waitForElementVisible('form')
  .setValue('#address-serviceability-form', streetNumber) // this is set to undefined
  .pause(5000)
 });

 after(browser => browser.end());
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-30 17:25:29

在我看来,这是您对NodeJS回调的理解的一个问题。

您应该能够使用async/await修复此问题。您的代码没有等待回调解析,并且在set value函数中使用之前没有赋值。你可以尝试下面这样的方法。

代码语言:javascript
复制
test('Extract random address', async function(browser) {

  await browser
    .getText('.rand_large li:first-child', function(result) {
      address = result.value.split("\n");
      streetNumber = address[0];
      console.log('streetNumber', streetNumber) //this works and logs correctly
      city = address[1].split(",")[0];
      stateAndZip = address[1].split(",")[1];
      state = stateAndZip.split(" ")[1];
      zip = stateAndZip.split(" ")[2];

    })
  browser.url('url2.com')
    .waitForElementVisible('form')
    .setValue('#address-serviceability-form', streetNumber) // this is set to undefined
    .pause(5000)
});

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67697671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档