Tampermonkey pour sélectionner une valeur de liste déroulante. Il n’a pas d’identifiant ou de nom, juste une classe?

J’écris un code Tampermonkey pour une page Web comme ConverTo :
Il est supposé sélectionner automatiquement la deuxième option dans un menu déroulant:

 MP3 MP4 (video)  

, plusieurs secondes après le chargement complet de la page.
Mais rien ne se passe.

Mon code:

 ...... // @match https://www.converto.io/* // @require http://code.jquery.com/jquery-1.11.0.min.js // ==/UserScript== $(document).ready(function(){ setTimout(test(),10000); function test() { $(".format-select").val('mp4'); } })(); 

S’il vous plaît aider!

    Voir Choix et activation des bons contrôles sur un site géré par AJAX .
    De nombreux contrôles basés sur AJAX ne peuvent pas être simplement modifiés; ils doivent également recevoir des événements clés pour que la page définisse l’état souhaité.

    Dans le cas ConverTo , cette sélection semble s’attendre :

    1. Un événement de clic.
    2. Un changement de valeur.
    3. Un événement de changement.

    Vous enverriez cette séquence avec le code suivant: ce script de travail complet:

     // ==UserScript== // @name _ConverTo, Automatically select mp4 // @match https://www.converto.io/* // @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js // @require https://gist.github.com/raw/2625891/waitForKeyElements.js // @grant GM_addStyle // ==/UserScript== //- The @grant directive is needed to restore the proper sandbox. waitForKeyElements (".format-select:has(option[value=mp4])", selectFinickyDropdown); function selectFinickyDropdown (jNode) { var evt = new Event ("click"); jNode[0].dispatchEvent (evt); jNode.val('mp4'); evt = new Event ("change"); jNode[0].dispatchEvent (evt); } 

    Il existe d’autres séquences d’états possibles, dans le même sens.