J'ai un fichier HTML / JavaScript avec l'API de la parole Web de Google et je fais des tests à l'aide de sélénium, mais chaque fois que je saisis le site que les demandes du navigateur autorisent d'utiliser mon microphone et je dois cliquer sur "Autoriser". p>
Comment puis-je faire du sélénium Cliquez sur Autoriser automatiquement? P>
8 Réponses :
Alors je viens de courir dans Une autre question Demander sur la désactivation d'une boîte d'invite différente. Il semble qu'il y ait peut-être un moyen pour vous d'accomplir votre objectif.
Cette page répertorie les options pour commencer Chrome. L'une des options est p> "désactive certaines mesures de sécurité lors de l'accès aux périphériques de support utilisateur tels que les webcams et les microphones, en particulier sur les pages non https" p> Peut-être que cela fonctionnera pour vous: p>
@experimentswithcode p>
Merci de nouveau pour votre réponse, j'ai passé presque toute la journée à essayer de comprendre comment faire cela et j'ai également essayé votre suggestion où vous ajoutez cet indicateur Cependant, j'ai pensé à une solution vraiment simple: p>
Pour cliquer automatiquement pour permettre à tout ce que je dois faire est de toucher trois fois la touche Tab, puis appuyez sur Entrée. Et j'ai donc écrit le programme pour le faire automatiquement et ça marche !!! p>
La première onglet appuyé lorsque ma page HTML s'ouvre de me diriger vers ma boîte d'entrée, la seconde dans la barre d'adresse et la troisième sur la touche Autoriser, puis appuyez sur la touche ENTER. p>
Le programme Python utilise le sélénium ainsi que les fixations PYWIN32. p>
Merci d'avoir pris votre temps et d'essayer de m'aider c'est très apprécié. P> - désactivation-User-Media- Sécurité Code> à Chrome, malheureusement, cela n'a pas fonctionné pour moi. p>
Si vous pouviez me donner votre e-mail, je vous enverrai une vidéo
C'est cool. J'aurais dû penser à cela. J'ai déjà lu cela avant, mais j'utilise un Mac pour que Pywin32 ne fonctionne pas pour moi, et je n'ai pas trouvé de remplacement approprié. Merci quand même pour l'offre!
Cette séquence clé ne semble pas fonctionner pour moi. Est-ce que cela fonctionne toujours pour vous?
Cela fait 2 ans que j'ai vu ce projet. Qu'est-ce qui ne fonctionne pas pour vous avec la séquence clé? La touche d'onglets manque-t-elle le bouton Autoriser? ne fonctionne-t-il pas du tout? Spécifiez plus précisément ce qui se passe s'il vous plaît.
Bonjour, je sais que cela a été il y a longtemps, mais je viens d'arriver à cela lorsque j'ai essayé de trouver une solution de contournement pour le même problème. Je pense que la mise basculante avec le clavier est faisable et lui a donné un coup, cependant, pour le chrome sur ma machine Mac et Linux, le "Autoriser" et "Deny" sur la popup ne peut tout simplement pas être sélectionné / ciblé. Cependant, essayer le chrome sur la machine Windows a fonctionné. Vous vous demandez simplement, avez-vous déjà essayé Chrome Max / Linux? Ou arriver à connaître les astuces là-bas? Un site que j'ai trouvé avec popup vous pouvez facilement essayer est digitaltrends.com/computer/best- Chrome-thèmes . Merci!
Je ne saurais pas une chose à propos de le faire sur Mac / Linux malheureusement
@Mengyuan Voir ma réponse. Il n'a pas non plus fonctionné pour moi à Linux, mais j'ai trouvé un travail en utilisant xdotool b>
[Java]: Oui, il existe une technique simple pour cliquer sur le bouton Autoriser l'utilisation de robot-java.awt
Voir aussi: Stackoverflow.com/a/42639954/363573
lutta avec cela assez un peu moi-même.
Le moyen le plus simple de le faire est d'éviter d'obtenir l'invite de l'autorisation est de Voici un code modifié sans vergogne de @ expériencesWithCode répondant: p> Add -use-Fake-UI-for-for-Media-Stream Code> à vos commutateurs de navigateur. p>
Vous avez sauvé ma journée!
Vous pouvez autoriser avec add_experimental_option comme indiqué ci-dessous.
Méfiez-vous de la réponse de Mohana Latha pour Java! Le code appuie uniquement sur les boutons et ne les libérez jamais. Cela apportera des problèmes de problèmes plus tard.
Utilisez cela à la place: P>
// opening new window
Robot robot;
try {
robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.delay(100);
robot.keyPress(KeyEvent.VK_N);
robot.delay(100);
robot.keyRelease(KeyEvent.VK_N);
robot.delay(100);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.delay(100);
} catch (AWTException e) {
log.error("Failed to press buttons: " + e.getMessage());
}
bâtiment sur la réponse du programmeur @shady.
J'ai essayé d'envoyer qui pour Firefox, donne le suivant approximatif EM> Séquence: P> onglet code> avec sélénium afin de se concentrer sur la fenêtre contextuelle, mais comme indiqué par d'autres, il n'a pas fonctionné à Linux . Par conséquent, au lieu d'utiliser des touches de sélénium, j'utilise la commande xdotool code> de python: p> # Focusing on permissions popup icon
for i in range(6):
time.sleep(0.1)
send_key(win_info['winid'], 'Tab')
# Enter permissions popup
time.sleep(0.1)
send_key(win_info['winid'], 'space')
# Focus on "accept" button
for i in range(3):
time.sleep(0.1)
send_key(win_info['winid'], 'Tab')
# Press "accept"
send_key(win_info['winid'], 'a')
le faire Pour Android Chrome, il fonctionne vraiment!
adb -s emulator-5554 push <YOU_COMPUTER_PATH_FOLDER>/com.android.chrome_preferences.xml /data/data/com.android.chrome/shared_prefs/com.android.chrome_preferences.xml
Êtes-vous capable d'utiliser Firefox? Mon expérience avec ces dialogues dans Firefox est que vous devez définir votre profil pour lui permettre par défaut. À partir de 1 an il ya 1 an, Vous ne pouvez pas utiliser un profil chrome personnalisé et je n'ai rien vu au contraire. En outre, j'ai essayé de chercher à définir un profil chrome pour permettre à Mic Utiliser par défaut et que le menu ne fonctionne pas pour moi. Son semble être comme une erreur connue
Malheureusement, je dois utiliser Chrome parce que le discours sur le Web de Google n'est que pour Chrome
Pouvez-vous vérifier si vous pouvez ajouter des exceptions pour le micro à votre profil. Cela ne fonctionne pas sur ma machine, mais peut-être que cela fonctionnera sur la tienne. 1. Ouvrez un nouvel onglet 2. Dans le menu Chrome, cliquez sur Préférences 3. Cliquez sur Afficher les paramètres avancés (c'est dans l'onglet Paramètres si vous n'échappez pas à cette page) 4. Cliquez sur Paramètres de contenu sous Confidentialité 5. Faites défiler vers le bas et cliquez sur Gérer les exceptions 6. À partir de là, vous êtes censé pouvoir ajouter des sites et les définir pour permettre au microphone.
Merci pour votre réponse mais cela ne fonctionne pas pour moi
Désolé je n'étais pas plus utile. Bonne chance.
@ Stackoverflow.com/users/6091876/Le-arcadian-pandit demande: Shady, je ne le fais pas avoir assez de réputation pour commenter. Donc, j'ai tapé comme une réponse elle-même. Pouvez-vous poster le code pour simuler les 3 onglets + 1 Entrée Cliquez sur. Je ne trouve aucune solution de contournement. Je fais exactement la même chose que toi. Test de l'API de la part de Google avec CLI Python s'il vous plaît aidez-moi. Merci d'avance :)
Voici un extrait: Pastebin.com/9eHQbekv Rien de spectaculaire dans ce morceau de code par lui-même
Gardez à l'esprit que même si j'ai mon projet de travailler avec tout ce tabeur de clés de clé, c'est fragile. Toute interruption inattendue dans cette séquence d'onglet et le code irait en forme de poire. De nos jours, si je voulais réactiver le projet, je devrais enquêter d'une meilleure façon, de laisser tomber toute cette automatisation de sélénium.