これらのコードを使ってTwitterで大量フォロー/アンフォロー/フェイバリット/フェイバリットを解除しました;
$('button.follow-button').click();
$('button.ProfileTweet-actionButtonUndo').click();
$('a.favorite').click();
動作していないコードをオンラインで見つけて修正しようとしたので、今はほとんど機能しています。唯一のことは、Google Chromeのページに移動し、f12を押してコンソールを開き、コマンドを実行することです。
だから今、私はVineで同じシステムを使いたかった。 Googleの拡張機能がありますchrome Vineを使用する( https://client.vineclient.com/ )。元のWebページ( Vine.co)は役に立ちません。
Twitterとこれとの唯一の違いは、^ followers ^セクションのVineクライアントでは、ページにポップアップが表示されることです。そして、ボタンを検出するかどうかはわかりません。
だから、元のページからクリックしようとしているボタンのコード、(開発者ツール/要素を使用してそれを取りました)
<div class="user">
<img alt="Tuğçe Nur TEKİN" class="avatar" src="http://v.cdn.Vine.co/r/avatars/3C2E4F40F11066473630650847232_pic-r-1397241239141e51579937f.jpg.jpg?versionId=ttIz4CExCjW_4TEnxYbnehPPpXRyzMco">
<div class="wrapper">
<a class="username"
href="https://client.vineclient.com/explore/users/1066473613911363584">
Tuğçe Nur TEKİN
</a>
</div>
<a class="button follow" data-id="1066473613911363584">
<i class="icon">
</i>
</a>
</div>
クリックするものはこちらです:
手動でクリックすると、次のように変わります。
<a class="button unfollow" data-id="1066473613911363584"><i class="icon"></i></a>
そして、クリックしようとするために使用するコマンド
$(".a.follow").click();
私が得るエラー、
TypeError: Cannot read property 'click' of null
どうすれば修正できますか?ちなみに、これらのコードでは、^ button ^コードは実際には見つかりませんでした。ありがとう!
更新
開発者ツールを同時に使用しているときに、他の場所(Seleniumなど)からWebページでjavascriptを実行すると、この問題が発生しました。開発者ツールを閉じて、スクリプトを実行してください。
JQueryライブラリーを使用するには、ライブラリーがページにロードされていることを確認する必要があります。 @adeneoが述べたように、jQueryはnull値を返しません。つまり、$
変数はjQueryではないオブジェクトへの参照を保持しています。 jQueryがページにロードされていることを確認するには、chromeデバッガーにtypeof jQuery
と入力します。jQueryがページにロードされると、コンソールは「関数」を出力します。 。ページにjQueryを追加する手順は、 here にあります。
JQueryがページに適切にロードされていることを確認したら、目的の要素にアクセスするために使用しているCSSセレクターを修正する必要があります。
$(".a.follow")
は、「クラス「a」と「follow」の両方を持つすべての要素を選択する」ことを意味します。
<div class = "a follow"> </ div>
代わりに、セレクタは$("a.follow")
である必要があります。これは、「 'follow'クラスを持つすべての 'a'タイプの要素を選択する」ことを意味します。
<a class="follow"> </a>
私の場合、解決策は、ブラウザー内で単純にelement-inspectorをオフにするにすることでした! :)
私の場合、jqueryと別のライブラリの間に競合があったため、メインスクリプトを呼び出す前に、スクリプトにjQuery.noConflict();
を実装する必要がありました。
Jqueryの競合について詳しく読むことができます here