Maison >développement back-end >Tutoriel Python >Un exemple d'analyse de la façon d'utiliser Selenium pour simuler le déverrouillage coulissant JQuery en Python
Cet article présente principalement un exemple de Selenium simulant le déverrouillage coulissant JQuery en Python, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
Cet article présente un exemple de Selenium simulant le déverrouillage coulissant JQuery en Python. , partagez-le avec tout le monde et laissez une note pour vous-même
Le déverrouillage coulissant a toujours été l'une des difficultés de l'automatisation de l'interface utilisateur. J'ajouterai un exemple de déverrouillage coulissant, en espérant donner quelques idées aux étudiants qui sont nouveaux. aux tests d'automatisation de l'interface utilisateur Web.
Regardons d’abord un exemple.
Lorsque je clique sur le curseur manuellement, tout ce qui change, c'est le style :
1. la marge s'agrandit (car elle se déplace vers la droite !)
2. Slide-tounlock-progress représente le fond jaune après le glissement. La largeur du jaune augmente car les endroits où passe la diapositive tournent. jaune. .
À part ceux-ci, il n’y a pas d’autres changements, il semble donc que nous ne pouvons pas utiliser le glisser-déplacer avec la souris ! Parce que le glissement de la souris déplace un élément vers un autre élément. Comme ceci :
# 定位元素的原位置 element = driver.find_element_by_id("xx") # 定位元素要移动到的目标位置 target = driver.find_element_by_id("xx") ActionChains(driver).drag_and_drop(element, target).perform()
Mais lors de ma démonstration manuelle, la position de l'élément n'a pas changé.
Voyons comment j’y suis parvenu.
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.common.exceptions import UnexpectedAlertPresentException from time import sleep driver = webdriver.Chrome() driver.get("https://www.helloweba.com/demo/2017/unlock/") dragger = driver.find_elements_by_class_name("slide-to-unlock-handle")[0] action = ActionChains(driver) action.click_and_hold(dragger).perform() #鼠标左键按下不放 for index in range(200): try: action.move_by_offset(2, 0).perform() #平行移动鼠标 except UnexpectedAlertPresentException: break action.reset_actions() sleep(0.1) #等待停顿时间 # 打印警告框提示 success_text = driver.switch_to.alert.text print(success_text) sleep(5) driver.quit()
driver.find_elements_by_class_name("slide-to-unlock-handle")[0]
Tout d'abord , I Il y a plusieurs curseurs sur la page à utiliser. Je trouve d'abord le premier d'entre eux via l'attribut class.
click_and_hold()
Appuyez sur le bouton gauche de la souris sur le curseur via la méthode click_and_hold().
move_by_offset()
L'étape suivante consiste à déplacer la position du curseur dans la boucle for. Le premier paramètre de la méthode move_by_offset() est l'axe X. , et le deuxième paramètre est l'axe Y, l'unité est le pixel. Puisqu’il s’agit d’un mouvement parallèle, Y est mis à 0. X déplace deux pixels à la fois.
Lorsque le déverrouillage est réussi, UnexpectedAlertPresentException sera levée et la boucle sera sautée après l'avoir détectée.
Chaque cycle dort pendant 0,1 seconde. Plus l'intervalle de temps est petit, plus le mouvement est fluide !
Maintenant que les étapes principales ont été introduites, l'étape suivante consiste à obtenir les informations d'invite sur la boîte d'avertissement, à les imprimer, puis à fermer le navigateur.
Le résultat imprimé est :
débloqué avec succès !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!