javascript - 使用 javascript 在元素断言中引用变量
问题描述
作为我的 nightwatchjs 测试脚本的一部分,我有以下代码
var dealerName = sellerWebsiteAddressQueryPage.Website.filter(val => typeof val === 'string')
我想做的就是将其用作断言的一部分,如下所示
.assert.elementPresent('li.contact-seller__action a[href*="dealerName"]');
但我似乎找不到在此断言中包含变量dealerName的正确方法。
任何帮助将不胜感激。
解决方案
我不太确定你的两个表达式是如何组合在一起的,所以在这里我假设dealerName 来自你正在过滤的数组。使用querySelector
、Array.filter
和模板文字来获得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>
推荐阅读
- javascript - 获取具有特定名称的 cookie
- javascript - 有没有办法使用 JavaScript 发布 webhook?
- php - 如何在重定向语句中添加变量?
- regex - 正则表达式 - 为什么这两个表达式不产生相同的结果?
- maven - 当从父级调用时,MavenProject getArtifacts 在模块上返回不同的列表
- laravel - Laravel 合并逻辑
- angular - FB.ui 共享对话框:“此 URL 的域不包含在应用程序的域中”
- python - 如何使用 RSA 方案加密字符串?
- java - 了解合并排序
- apache-spark - 使用编码器如何比 java 序列化快得多?