【问题标题】:Reference a variable within an element assertion using javascript [duplicate]使用javascript引用元素断言中的变量[重复]
【发布时间】:2019-08-14 21:04:23
【问题描述】:

作为我的 nightwatchjs 测试脚本的一部分,我有以下代码

var dealerName = sellerWebsiteAddressQueryPage.Website.filter(val => typeof val === 'string')

我想做的就是将其用作断言的一部分,如下所示

.assert.elementPresent('li.contact-seller__action a[href*="dealerName"]');

但我似乎找不到在此断言中包含变量 dealerName 的正确方法。

任何帮助将不胜感激。

【问题讨论】:

  • 只使用字符串连接或模板字符串。
  • 与在任何其他 JavaScript 字符串中包含变量的方式相同。

标签: javascript variables


【解决方案1】:

试试

.assert.elementPresent(`li.contact-seller__action a[href*="${dealerName}"]`);

【讨论】:

  • 太棒了,这行得通。非常感谢@Kamil Kiełczewski
【解决方案2】:

我不太确定你的两个表达式是如何组合在一起的,所以在这里我假设dealerName 来自你正在过滤的数组。使用querySelectorArray.filtertemplate literals 获得满足您条件的dealerNames

const sellerWebsiteAddressQueryPage = {
  Website: [1, "Alice", undefined, "Bob"]
};
const dealerNames = sellerWebsiteAddressQueryPage.Website.filter(
  val => typeof val === "string"
).filter(dealerName =>
  document.querySelector(`li.contact-seller__action a[href*="${dealerName}"]`)
);

console.log(dealerNames);
<ul>
  <li class="contact-seller__action">
    <a href="site.com/dealers/Bob">Bob</a>
  </li>
<ul>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 2016-07-16
    • 2014-11-29
    • 2015-03-22
    相关资源
    最近更新 更多