web-dev-qa-db-fra.com

python en cliquant sur un bouton sur une page Web

J'ai actuellement un script qui me connecte à un site Web et je veux le faire cliquer sur un bouton du site Web s'il n'est actuellement pas cliqué. Voici les informations pour le bouton:

Lorsque le bouton est déjà actif:

<p class="toast_btn">
    <a class="button grey toast track-click active" data-user-avatar="https://dwebsite.net/picture.jpg" data-checkin-id="123456789" data-href=":feed/toast" data-track="activity_feed" href="#">

Lorsque le bouton n'est pas actif:

<p class="toast_btn">
    <a class="button grey toast track-click" data-user-avatar="https://dwebsite.net/picture.jpg" data-checkin-id="123456789" data-href=":feed/toast" data-track="activity_feed" href="#">

Je ne cherche à cliquer dessus que lorsque class="button grey toast track-click"

Quelle est la meilleure façon de procéder? J'utilise actuellement urllib2 et mécanise pour me connecter et vérifier quelques formulaires actuellement. Merci!

13
rjbogz

Quand je compare les deux balises, je vois que la différence est pour la balise class. Donc, si vous pouvez le lire, vous avez terminé

Vous pouvez le faire avec du sélénium si vous le souhaitez

Étape 1: trouvez le XPath - Obtenez le XPath du bouton: pour ce droit, ouvrez la page dans Chrome cliquez dessus et sélectionnez Inspecter l'élément - Il ouvrira le fichier html et faites un clic droit sur le ligne en surbrillance et sélectionnez copier Xpath - Copiez le XPath dans le bloc-notes

Maintenant que vous avez le XPath, vous pouvez sélectionner le bouton via un script Python et interroger les attributs

Voici un prototype

from Selenium import webdriver
from Selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.youradress.org")#put here the adress of your page
elem = driver.find_elements_by_xpath("//*[@type='submit']")#put here the content you have put in Notepad, ie the XPath
print(elem.get_attribute("class"))
driver.close()

J'espère que cela aide, si vous avez des questions, faites-le moi savoir

J'ai utilisé ces liens pour la documentation

Python Selenium: Rechercher des attributs d'objet en utilisant xpath

https://Selenium-python.readthedocs.io/locating-elements.html

12
Gabriel