1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD Changer Attribut d'une page web grâce à Selenium

Discussion dans 'Windev' créé par Wikeos, Sept 22, 2021.

  1. Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    172
    J'aime reçus:
    170
    Bonjour à tous,

    Bloquant sur un problème depuis 2 jours, je souhaite un coup de main de la part des experts de FEKWX,
    voici mon problème, je tente de changer l'attribut d'une page web grâce à Selenium.

    Exemple : style="display:none" par style=""
    [​IMG]

    Pour cela, la solution la plus approprié sera d'utiliser un ChromeDriver et utiliser la méthodes ExecuteScript, mais celle si me met sans cesse un message d'erreur
    Exemple :

    driver est un ChromeDriver()
    driver.ExecuteScript("monScript") ou driver.ExecuteScript("monScript" , elem)

    [​IMG]

    [​IMG]

    Si ma demande n'est pas clair ou vous avez besoin de plus d'informations, n'hésitez pas à me le faire.
    Merci aux courageux qui souhaitent m'aider.
     
    Tags:
  2. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,938
    J'aime reçus:
    1,564
    Déjà quel est le code de ExecuteScript
    Car ton imprime écran ne contient aucun code.
    A moins que je ne le vois pas.
    De plus tu n'indique pas ton message d'erreur
    De plus tu met cela dans un champ natif ou HTML Ou dans webdev ?
    Car sélénium c'est un framework web
    A moins que je me trompes
    Voir

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    En plus, tu dis que tu veux changer l'attribut d'une page
    Cela veut dire quoi exactement
    C'est trop vague
    Ton chrome drivers est il en .net?
     
  3. Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    172
    J'aime reçus:
    170

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Déjà quel est le code de ExecuteScript
    Car ton imprime écran ne contient aucun code.
    A moins que je ne le vois pas.
    De plus tu n'indique pas ton message d'erreur
    De plus tu met cela dans un champ natif ou HTML Ou dans webdev ?
    Car sélénium c'est un framework web
    A moins que je me trompes
    Voir

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    En plus, tu dis que tu veux changer l'attribut d'une page
    Cela veut dire quoi exactement
    C'est trop vague
    Ton chrome drivers est il en .net?
    Cliquez pour agrandir...
    Merci de ton retour,

    Je vais être plus clair et répondre à tes questions, déjà le but final est de remplir un formulaire par le biais de Sélénium.

    Sélénium est un framework de test informatique développé en Java qui offre des passerelles pour s'exécuter avec différents langages comme Python et PHP. ... Il permet d'écrire des tests automatisés en différents langages (PHP, Javascript, Python, Ruby, . NET, Perl, Java, Rust et enfin Go).

    Pour cela, j'intègre 2 assemblages .NET (Webdriver.dll et Webdriversupport.dll) ainsi qu'un exécutable permettant de lancer une console pour exécuter Sélénium (chromedriver.exe), tout cela à la racine de mon projet (Exe/).

    Pour remplir les champs de mes formulaire, j'utilise des fonctions simple de Sélénium telles que .Click() pour simuler un clique ou .sendKeys() pour envoyer du texte.

    [​IMG]


    Jusqu'à la tout va bien, mais cela est de courte durée car quand j'arrive sur cette page, il y a un capcha, je récupère bien le token pour le bypass grâce à un service api externe mais le soucis c'est que la zone de texte pour saisir le token est caché et qui m'empêche de simuler les click et saisis de texte étant donnée qu'il n'est pas visible du au style="display:none".

    [​IMG]

    La solution à ce soucis est de mettre style="" pour ainsi démasquer le champ, pouvoir de nouveau interagir avec le formulaire et lui insérer le token.

    [​IMG]

    Pour cela, il faut modifier l'attribut style depuis Sélénium et le Webdriver, qui en soit se gère très bien en Python, JavaScript grâce à la fonction execute_script(). Voici un exemple d'un code fonctionnant très bien en Java

    [​IMG]

    Fonction qui est bien présent sur le ChromeDriver avec windev

    [​IMG]

    Mais qui ne fonctionne pas malgré un nombre important de testes

    [​IMG]

    En éspèrant que cela soit plus clair pour toi Popoy :).
     
    #3 Wikeos, Sept 23, 2021
    Dernière édition: Sept 23, 2021
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,938
    J'aime reçus:
    1,564
    Le plus simple en .NET c'est d'utiliser l'automation.
    Voici une page qui parle de .net et sélénium + windev

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Le problème est que cela ne fonctionnera que sur windows (dommage pour du web)
     
  • popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,938
    J'aime reçus:
    1,564
    Personnellement depuis la 23 j'utilise executejs avec un champ HTML et les fonctions du dom.
    Cela permet de gérer pas mal de choses en web et en plus c'est compatible Android, iOS et windows.
     
  • Wikeos

    Wikeos Active Member

    Inscrit:
    Fev 27, 2020
    Messages:
    172
    J'aime reçus:
    170

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Personnellement depuis la 23 j'utilise executejs avec un champ HTML et les fonctions du dom.
    Cela permet de gérer pas mal de choses en web et en plus c'est compatible Android, iOS et windows.
    Cliquez pour agrandir...
    Pour répondre à ton précédent message, sur le forum que tu as envoyé Jurassic utilise justement Selenium qui est vraiment bien, pour ce que tu utilise, pourquoi pas mais avec un champ HTML tu es limité à EDGE, ce qui ne me convient pas des masses.
     
  • Partager cette page

    Chargement...