【发布时间】:2020-05-12 11:05:55
【问题描述】:
我想检查p标签是否存在于父标签中,目前它找到了p标签,但问题是一些li标签没有p标签,所以它抛出错误。我不需要错误我想知道是否有错误或没有p 标记然后将变量keyValue 设置为false 或者如果有p 元素然后将变量keyValue 设置为其在@987654329 内的文本@标签。
这里是 HTML 代码:
<ul class="list-inline">
<li>
<div class="key-info-icon">
<span>Sleeps</span> <br /><i class="fi flaticon-sleeps"></i>
</div>
<p>6</p>
</li>
<li>
<div class="key-info-icon">
<span>Bedrooms</span> <br /><i class="fi flaticon-bedrooms"></i>
</div>
<p>3 Rooms</p>
</li>
<li>
<div class="key-info-icon">
<span>Min Nights</span> <br /><i class="fi flaticon-min-nights"></i>
</div>
<p>7 (peak)<br />3 (off peak)</p>
</li>
<li>
<div class="key-info-icon">
<span>Children</span> <br /><i class="fi flaticon-child-friendly"></i>
</div>
<p>Yes</p>
</li>
<li>
<div class="key-info-icon">
<span>WiFi</span> <br /><i class="fi flaticon-wifi"></i>
</div>
<p>Yes</p>
</li>
<li>
<div class="key-info-icon">
<span>Dogs</span> <br /><i class="fi flaticon-dog"></i>
</div>
<p>
Yes <br />
2 Dogs
</p>
</li>
<li>
<div class="key-info-icon text-center">
<span>Access</span> <br /><i class="fi flaticon-stairs"></i>
</div>
<p>Stairs</p>
</li>
<li>
<div class="key-info-icon">
<span>Swimming Pool</span> <br /><i class="fi flaticon-swimming-pool"></i>
</div>
</li>
<li>
<div class="key-info-icon">
<span>Log Burner</span> <br /><i class="fi flaticon-logburner"></i>
</div>
</li>
</ul>
这是我的柏树代码:
cy.get(".keyInfo > ul > li").each(($el, index) => {
cy.get($el).find("span").as("keyName");
let keyValue;
cy.get("@keyName").then(($span) => {
cy.get($span).parent().siblings();
let tempData = {
[`"${$span.text()}"`]: "test",
};
keyTempData.keyInfo.push(tempData);
});
data.keyInfo = keyTempData;
});
知道如何实现吗? cy.get($span).parent().siblings(); 如果没有 p 标签,则会抛出错误。我也试过cy.get($span).parent().parent().find('p'); 这也在做同样的事情。
【问题讨论】: