>백엔드 개발 >파이썬 튜토리얼 >Selenium을 사용하여 Python에서 JQuery 슬라이딩 잠금 해제를 시뮬레이션하는 방법에 대한 분석 예

Selenium을 사용하여 Python에서 JQuery 슬라이딩 잠금 해제를 시뮬레이션하는 방법에 대한 분석 예

黄舟
黄舟원래의
2017-07-26 15:42:152156검색

이 글에서는 주로 Python에서 JQuery 슬라이딩 잠금 해제를 시뮬레이션하는 Selenium의 예를 소개합니다. 관심 있는 친구들은 참고할 수 있습니다.

이 글에서는 Python에서 JQuery 슬라이딩 잠금 해제를 시뮬레이션하는 Selenium의 예를 소개하고 싶습니다. 여러분에게 메모를 남겨주세요

슬라이딩하여 잠금 해제하는 것은 항상 UI 자동화의 어려움 중 하나였습니다. 웹 UI 자동화 테스트를 처음 접하는 학생들에게 몇 가지 아이디어를 제공하기 위해 슬라이드하여 잠금 해제하는 예를 추가하겠습니다.

먼저 예시를 살펴보겠습니다.

슬라이더를 수동으로 클릭하면 스타일만 변경됩니다.

1. 슬라이드-잠금 해제 핸들은 슬라이더를 나타내며 슬라이더의 왼쪽 여백이 점점 커집니다. 오른쪽! )

2. 슬라이드가 지나간 곳이 노란색으로 변했기 때문에 슬라이드 후 노란색 배경을 나타냅니다.

이것 외에는 다른 변경사항은 없어서 마우스 드래그를 사용할 수 없는 것 같습니다! 마우스 드래그는 한 요소를 다른 요소로 이동시키기 때문입니다. 이렇게:


# 定位元素的原位置
element = driver.find_element_by_id("xx")
# 定位元素要移动到的目标位置
target = driver.find_element_by_id("xx")

ActionChains(driver).drag_and_drop(element, target).perform()

하지만 수동 시연 중에 요소의 위치는 변경되지 않았습니다.

어떻게 달성하는지 볼까요?


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]

먼저 제가 조작하고 싶은 페이지에 여러 개의 슬라이더가 있는데 먼저 클래스를 통해 모두 찾아봅니다. 속성 내부의 첫 번째 속성입니다.

click_and_hold()

click_and_hold() 메소드를 통해 슬라이더에서 마우스 왼쪽 버튼을 누릅니다.

move_by_offset()

다음 단계는 for 루프를 통해 슬라이더의 위치를 ​​이동하는 것입니다. move_by_offset() 메서드의 첫 번째 매개 변수는 X 축이고 두 번째 매개 변수는 Y 축입니다. 단위는 픽셀입니다. 평행이동이므로 Y는 0으로 설정됩니다. X는 한 번에 두 픽셀씩 이동합니다.

잠금 해제가 성공하면 UnexpectedAlertPresentException이 발생하고 이를 포착한 후 루프가 튀어나옵니다.

각 사이클은 0.1초 동안 잠을 잔다. 시간 간격이 작을수록 움직임이 더 부드러워진다!

이제 핵심 단계가 소개되었으므로 다음 단계는 경고 상자에 대한 프롬프트 정보를 가져와 인쇄한 후 브라우저를 닫는 것입니다.

인쇄된 결과는 다음과 같습니다.

성공적으로 잠금 해제되었습니다!

위 내용은 Selenium을 사용하여 Python에서 JQuery 슬라이딩 잠금 해제를 시뮬레이션하는 방법에 대한 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.