我正在开发一个供个人使用的 chrome 扩展(使用 Javascript),它会抓取一些数据并将其导出到 csv 文件,现在我在提取一些文本节点时遇到问题,因为它们的选择器(chrome css 选择器)会根据如何变化而变化存在许多具有相同类别但内容不同的标签。
这是 Html 的示例:
<li class="sc-account-rows__row">
<div class="sc-account-rows__row__label">RTF</div> // Title Label
<div class="sc-account-rows__row__price--container">
<div class="sc-account-rows__row__price">-$ 1.485</div> // Price Label <- How to get This?
</div>
</li>
<li class="sc-account-rows__row">
<div class="sc-account-rows__row__label">some text</div> // Another Label
<div class="sc-account-rows__row__price--container">
<div class="sc-account-rows__row__price">-$ 2.418</div> // Another price which I don't need but has same class
</div>
</li>
换句话说,这个特定标签的选择器可以是:
#root-app > div > div.sc-account-section > div.sc-account-section__container > div.sc-account-module > div:nth-child(3) > ul > li:nth-child(1) > div.sc-account-rows__row__price--container > div
或者
#root-app > div > div.sc-account-section > div.sc-account-section__container > div.sc-account-module > div:nth-child(3) > ul > li:nth-child(9) > div.sc-account-rows__row__price--container > div
As you can see there is no Id or Name assigned to this particular label, I was using (successfully) this piece of code when the selector was always the same. (注意这是在 iframe 中)
var RTF_fee = "#root-app > div > div.sc-account-section > div.sc-account-section__container > div.sc-account-module > div:nth-child(3) > ul > li:nth-child(4) > div.sc-account-rows__row__price--container > div";
if (iframe_document.body.contains(iframe_document.querySelector(RTF_fee))) {
RTF_value = iframe_document.querySelector(RTF_fee).textContent;
console.log(RTF_value);
}
else {
RTF_value = "0";
console.log(RTF_value);
}
所以,问题是:如果我没有唯一的选择器/ID,如何获取价格标签中的文本内容?
我想我可以处理价格标签类别始终为“sc-account-rows__row__price”并且价格之前的标签文本始终为“RTF”的事实,但我不知道如何编码或者是否有更好的选择。
我为我糟糕的“编程”语言道歉,我只是一个临时程序员)
提前致谢。
蝴蝶不菲
慕的地6264312
相关分类