[PYTHON] Connexion automatique au service maintenant avec le pilote Web Selenium
◆ Aperçu
- J'ai essayé de me connecter automatiquement à ServiceNow à l'aide de Selenium WebDriver, qui est utilisé pour automatiser les tests de l'interface utilisateur Web.
◆ Environnement d'exploitation
- OS: Windows10
- Version Python: 3.8.0
◆ Préparation
Instanciation ServiceNow
- Vous pouvez créer une instance pour les développeurs en enregistrant un compte sur la page ServiceNow Developers.
- Lorsque la création est terminée, l'URL de l'instance et les informations initiales du compte administrateur seront affichées, alors assurez-vous d'en prendre note.
Préparation de l'environnement d'exécution Python
- Téléchargez et installez le programme d'installation à partir du Site officiel de Python.
- Assurez-vous que pip est inclus.
Préparation du sélénium
- Installez Selenium avec pip.
- Téléchargez le pilote du navigateur que vous souhaitez exécuter à partir du site Web officiel de Selenium.
- Téléchargez "Google Chrome Driver" pour l'exécuter sur Google Chrome cette fois.
- Placez le "chromedriver.exe" téléchargé à n'importe quel endroit.
◆ Essayez de faire fonctionner le service maintenant
Lancez le navigateur
- Spécifiez Google Chrome comme navigateur et démarrez-le.
- Au fait, maximisez la fenêtre
from selenium import webdriver
#Lancez Google Chrome
driver = webdriver.Chrome(executable_path = 'Chemin du pilote Chrome')
#Agrandir la fenêtre
driver.maximize_window()
Accéder à la page de connexion ServiceNow
- Spécifiez l'URL de chaque instance à laquelle accéder.
#Accéder à la page de connexion ServiceNow
driver.get('https://<Nom de l'instance ServiceNow>.service-now.com/')
driver.implicitly_wait(20)
Obtenir des éléments du formulaire de connexion
- Étant donné que la partie du formulaire de connexion est dans l'iframe, si vous spécifiez l'id tel quel, il ne sera pas trouvé et une erreur sera rejetée.
- Il faut d'abord récupérer l'élément d'iframe et déplacer le cadre avec switch_to_frame.
- Lorsque l'opération est terminée, utilisez switch_to.default_content () pour quitter l'iframe.
#Récupérez l'élément iframe qui contient le formulaire de connexion
login_iframe = driver.find_element_by_xpath("//*[@id='gsft_main']")
#Déplacer dans l'iframe spécifié
driver.switch_to_frame(login_iframe)
#Obtenir des éléments du formulaire de nom d'utilisateur&Saisissez votre nom d'utilisateur
user_name_form = driver.find_element_by_id('user_name')
user_name_form.send_keys("<Nom d'utilisateur>")
#Obtenir des éléments du formulaire de mot de passe&saisie du mot de passe
password_form = driver.find_element_by_id('user_password')
password_form.send_keys("<mot de passe>")
#Obtenir des éléments pour le bouton de connexion&Cliquez sur le bouton de connexion
login_button = driver.find_element_by_id('sysverb_login')
login_button.click()
driver.implicitly_wait(20)
#Quitter iframe
driver.switch_to.default_content()
◆ Page de référence