0
votes

Cliquez sur un bouton dans une page Web

J'ai besoin de cliquer sur l'un des boutons "Ajouter" d'une page Web comme l'adresse suivante:

" https://groceries.asda.com/search/yoghurt "

Mais, aucun des boutons "Ajouter" de la page n'a le nom ou l'ID. Donc, je ne peux pas utiliser pilote.find_element_by_id () commande de l'emballage de sélénium.

Quelqu'un peut-il m'aider?


1 commentaires

Veuillez lire Pourquoi "peut-il m'aider quelqu'un? " Pas une question réelle? . Ensuite, lisez Comment demander et prendre quelques minutes pour ajouter quelques détails à votre question, surtout à un exemple de reproductible minimal .


3 Réponses :


0
votes

Utilisez une méthode similaire Find_elements_by_csss_selector : xxx

car les boutons ont des classes d'identification. Ensuite, vous pouvez cliquer sur chacun de ces boutons: xxx


2 commentaires

Merci beaucoup pour votre attention. J'ai couru ce code. Comme vous le voyez dans la page Web, il existe de nombreux boutons avec le nom de "Ajouter". Mais après avoir exécuté ce code, la variable des éléments est nulle. En fait, bien que le CSS ci-dessus soit dans la liste des balises de bouton, le code ne peut trouver aucun élément avec ces CSS. Avez-vous une idée?


Salut je n'ai pas attendu la page de chargement. La méthode fonctionne pour moi. Merci. Mais le nouveau problème se produit avec cette page. " Saipa.iranecar.com/product-group/156/circulturations / Ticket / ... "Pouvez-vous m'aider à entrer sur le bouton de cette page?



-1
votes

Vous dites que vous voulez cliquer sur un Ajouter avec Python? Pour ce faire, vous pouvez le faire:

enter code here
import pyautogui
x= #x location
y= #y location
while True:
     pyautogui.click(x,y)


1 commentaires

Merci beaucoup pour votre attention. Certains boutons n'existent pas toujours sur la page. Donc, je dois vérifier l'existence (apparence) du bouton. Pour cette raison, je veux trouver l'élément par ses attributs, pas avec sa position. Avez-vous une idée?



1
votes

Pour cliquer sur n'importe quel bouton Ajouter KBD> pour un produit particulier Vous pouvez écrire une méthode comme suit:

click_me("Munch") # Munch Bunch Double Up Strawberry & Vanilla Yogurts
# or
click_me("ASDA") # ASDA Greek Style Fat Free Yogurt
# or
click_me("Petits") # Petits Filous Apricot, Strawberry & Raspberry Yogurt


6 commentaires

Salut la méthode fonctionne pour moi. Merci. Mais le nouveau problème se produit avec cette page. " Saipa.iranecar.com/product-group/156/circulturations / Ticket / ... "Pouvez-vous m'aider à entrer sur le bouton de cette page?


@ user12235025 Essayer d'accéder à Saipa.iranecar.com/product-group / 156 / Circulation / Ticket / ... me donne Accès refusé erreur. Cependant, il semble être une nouvelle exigence. Pouvez-vous augmenter la question de nouveau selon votre nouvelle exigence s'il vous plaît? Stackoverflow Les contributeurs seront heureux de vous aider.


Je ne trouve pas de marque creuse pour vous voter. S'il vous plaît montrez-moi que puis-je vous voter? Oui. J'ai oublié que cette page interdite d'autres pays. Mais le problème est le suivant: Lorsque je charge la page (juste la charge), immédiatement après le chargement, il redirige vers sa page mère. Je pense que pour les options de sécurité de la page, il reconnaît la télécommande et empêche d'autres actions. Mon code: de SELENIUM IMPORT WEBDRIVIVER Demandes d'importation Demandes d'importation Demandes pilote = webdiver.firefox () url = ' saipa.iranecar.com/product-group/156/circulations/ticket/... 'Driver.get (URL)


Avez-vous une idée de quitter la page qui a envoyé dans le dernier commentaire?


@ user12235025 Pas si super clair pour moi lorsque vous dites ... PLANCHE Page qui a envoyé dans le dernier commentaire ... , avez-vous une question soulevée pour cela?


Lorsque je charge la page (juste charger) par pilote.get (URL), immédiatement après avoir chargé l'URL requise, il redirige vers sa page mère. Je pense que pour les options de sécurité de la page, il reconnaît la télécommande et dirige vers une autre page.