Comment cliquer sur un bouton à l'intérieur d'une étiquette de barre latérale avec Selenium et Python

Peter Pan

J'essaye de cliquer sur un bouton dans une étiquette de barre latérale:

<span class="sidebar-label">
    Exportar Listagem
</span>

Voici mon code:

driver.get("https://ispot2.faturaiqos.pt")
html = driver.page_source
exp = driver.find_element_by_link_text("Exportar Listagem")
exp.click()

Voici l'erreur que j'obtiens:

Traceback (most recent call last):
File "/home/pi/Desktop/Python Testes/Ispot JP.py", line 25, in <module>
exp = driver.find_element_by_link_text("Exportar Listagem")
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 317, in find_element_by_link_text
return self.find_element(by=By.LINK_TEXT, value=link_text)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 745, in find_element
{'using': by, 'value': value})['value']
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"link text","selector":"Exportar Listagem"}
(Session info: chrome=84.0.4147.141)
(Driver info: chromedriver=84.0.4147.141 (80c974bf7990b9735a8e885046fc5c9b1da4796c-refs/branch-heads/4147@{#1132}),platform=Linux 5.4.79-v7+ armv7l)
DebanjanB

Pour cliquer sur l'élément avec le texte comme Exportar Listagem, vous pouvez utiliser les stratégies de localisation suivantes :

  • En utilisant xpath et contains():

    driver.find_element_by_xpath("//span[@class='sidebar-label' and contains(., 'Exportar Listagem')]").click()
    
  • En utilisant xpath et normalize-space():

    driver.find_element_by_xpath("//span[@class='sidebar-label' and normalize-space()='Exportar Listagem']").click()
    

Idéalement, pour cliquer sur l'élément dont vous avez besoin pour induire WebDriverWait pour le element_to_be_clickable()et vous pouvez utiliser l'une des stratégies de localisation suivantes :

  • En utilisant xpath et contains():

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[@class='sidebar-label' and contains(., 'Exportar Listagem')]"))).click()
    
  • En utilisant xpath et normalize-space():

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[@class='sidebar-label' and normalize-space()='Exportar Listagem']"))).click()
    
  • Remarque : vous devez ajouter les importations suivantes:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    Comment exécuter un fichier python avec des droits d'administrateur dans pycharm

  2. 2

    obtenir le nombre de marqueur affiché sur la carte

  3. 3

    comment obtenir un objet de requête dans les tests unitaires de django?

  4. 4

    Microsoft.WebApplication.targets

  5. 5

    Exécuter la requête externe pour chaque date obtenue à partir de la requête interne

  6. 6

    comment convertir une chaîne en un tuple dateutil jour de la semaine sans utiliser eval

  7. 7

    Dans les modèles Hugo, comment vérifier la longueur du tableau de fichiers JSON?

  8. 8

    Référencement des assemblys de structure .net 4.7 dans la solution .net core 2

  9. 9

    Comment ajouter un texte dans un texte Python/Tkinter

  10. 10

    mongo kafka connect source

  11. 11

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  12. 12

    Recherche de dicton Jinja2 à l'aide d'une clé variable

  13. 13

    Vérifier la longueur du nombre à partir du message, puis utiliser la valeur dans l'instruction

  14. 14

    Laravel 8: Attempt to read property "id" on null

  15. 15

    Comment obtenir tous les champs d'un objet (y compris sa superclasse), à l'aide de l'API Mirrors de Dart?

  16. 16

    Comment convertir une chaîne en tuple en utilisant `reads`?

  17. 17

    Aide de variable de débogage pprint jinja2

  18. 18

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  19. 19

    mauvaise valeur pour le type long: - Postgresql, Hibernate, Spring

  20. 20

    définir une propriété pour chaque nœud dans neo4j

  21. 21

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

chaudétiquette

Archive