Próbuję zautomatyzować poniższy przycisk wpłaty na Facebooku z zapytaniem javascript
Zrzut ekranu z przyciskiem Przekaż darowiznę
document.getElementById('pay_button').click();
Ale problem polega na tym, że otrzymuję odpowiedź jako
Uncaught TypeError: Cannot read property 'click' of null
Co oznacza, że nie ma takiego identyfikatora, ale kod źródłowy Facebooka pokazuje data-testid = "pay_button" . Czy ktoś może mi pomóc, jak zautomatyzować ten przycisk darowizny, może używam niewłaściwego identyfikatora klasy? Próbowałem użyć innej klasy, ale wszystko, co otrzymuję, to null, jak mogę zidentyfikować właściwy identyfikator klasy w tym przypadku?
<div class="_39ge">
<div class="_39gi">
<button data-testid="pay_button" type="button" aria-disabled="false" class="_271k _1qjd _7tvm _7tv2 _7tv4" style="width: 100%; letter-spacing: normal; color: rgb(255, 255, 255); font-size: 12px; font-weight: bold; font-family: Arial, sans-serif; line-height: 34px; text-align: center; background-color: rgb(0, 164, 0); border-color: rgb(0, 164, 0); height: 36px; padding-left: 19px; padding-right: 19px; border-radius: 2px;">
<div class="_43rl">
<div data-hover="tooltip" data-tooltip-display="overflow" class="_43rm">
<div class="_304_ clearfix">
<div class="_ohe lfloat">
<div class="_2pis">Donate</div>
</div>
<div class="_ohf rfloat">
<div class="_2pii"><span>$55.00</span></div>
</div>
</div>
</div>
</div>
</button>
</div>
</div>
-1
aruzmeister
21 listopad 2019, 05:22
1 odpowiedź
Możesz wypróbować inny selektor.
$(function() {
$("[data-testid='pay_button']").click(function() {
console.log("Button Clicked.");
})
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="_39ge">
<div class="_39gi">
<button data-testid="pay_button" type="button" aria-disabled="false" class="_271k _1qjd _7tvm _7tv2 _7tv4" style="width: 100%; letter-spacing: normal; color: rgb(255, 255, 255); font-size: 12px; font-weight: bold; font-family: Arial, sans-serif; line-height: 34px; text-align: center; background-color: rgb(0, 164, 0); border-color: rgb(0, 164, 0); height: 36px; padding-left: 19px; padding-right: 19px; border-radius: 2px;">
<div class="_43rl">
<div data-hover="tooltip" data-tooltip-display="overflow" class="_43rm">
<div class="_304_ clearfix">
<div class="_ohe lfloat">
<div class="_2pis">Donate</div>
</div>
<div class="_ohf rfloat">
<div class="_2pii"><span>$55.00</span></div>
</div>
</div>
</div>
</div>
</button>
</div>
</div>
To jest selektor atrybutów, zobacz więcej.
0
Twisty
21 listopad 2019, 05:49
Dzięki za odpowiedź, ale nie mogę uruchomić w konsoli? Masz na myśli coś takiego
– document.getElementById("[data-testid='pay_button']").click();
aruzmeister
21 listopad 2019, 05:58
Nie, nie mam tego na myśli. Nie można w ten sposób „pobrać elementu według identyfikatora”. Jeśli szukasz metody JavaScript, zobacz więcej tutaj: developer.mozilla.org/en-US/docs/Web/API/Element/…
– Twisty
21 listopad 2019, 19:11
pay_button
. Jeśli element nie istnieje, nie będziesz mógł powiązać z nim zdarzenia.