我没有js专家,但需要在我的AppleScript中执行一些js。不知道这是否可行,因为html页面包含这个div类的几个实例。
这里接受的一个替代版本IN THIS THREAD。
我的Html:
<div class="product_card powersearch__product_card">
<a href="/shop/XYZ" class="js-search-product-link">
<div class="product_card__image" style="background-image:url(https://image.jpg);"></div>
<div class="product_card__title">SEARCH FOR THIS TITLE</div>
<div class="product_card__meta">€14</div></a></div>
到目前为止我所拥有的是:
tell application "Safari"
open location "https://teespring.com/search?q=rocker"
delay 5
set theLinks to (do JavaScript "Array.prototype.slice.call(document.querySelectorAll('.product_card')).map(function(d,i){var title = d.querySelector('.product_card__title'),link = d.querySelector('a');if(title && link && /Rocker/gi.test(title.textContent)){return link.href}})")
end tell
return theLinks
答案 0 :(得分:1)
将yourSearchTerm替换为您要在下面搜索的内容:
Array.prototype.slice.call(document.querySelectorAll(".product_card"))
.map(function(d,i){
var title = d.querySelector(".product_card__title"),
link = d.querySelector("a");
if(title && link && /yourSerchTerm/gi.test(title.textContent)){
return link.href
}
})
对于所有类"product_card"
的div,它会返回一个包含href
s的数组,用于它可以找到的数组,否则undefined
FIDDLE: https://jsfiddle.net/ibowankenobi/gc6r2h3v/1/
当apple返回最后一个全局值时,它可能有助于更改设置theLinks
变量的部分:
set theLinks to (do JavaScript "someGlobal = Array.prototype.slice.call(document.querySelectorAll('.product_card')).map(function(d,i){var title = d.querySelector('.product_card__title'),link = d.querySelector('a');if(title && link && /Rocker/gi.test(title.textContent)){return link.href}})")