selenium 디자인 모델 의 --- PageObject, 자동화 테스트 레이 어 링 디자인 사상
페이지 대상PO 디자인 모델 은 selenium 에서 중요 한 디자인 모델 이다.
2. 원리:
한 페이지 의 모든 페이지 요소 와 페이지 작업 을 하나의 페이지 클래스 로 봉 하여 테스트 용례 클래스 에 넣 는 것 이다.수 동 테스트 만 담당 하 는 업무 논리.따라서 기 존의 테스트 용례 류 를 page 와 case 두 부분 으로 나 누 어야 한다.
3. 역할:
전단 페이지 가 바 뀌 면 한 페이지 에서 특정한 페이지 요소 의 포 지 셔 닝 도 달라 집 니 다.만약 에 몇 십, 심지어 몇 백 개의 테스트 사례 에서 이 페이지 요 소 를 사용 하면 코드 를 수정 할 수 없고 PO 의 디자인 은 이 문 제 를 해결 했다.
4. 요약:
1. 케이스 는 테스트 사례 방법 만 포함 하고 이 방법 에 대해 데이터 구동 테스트 를 한다.줄 마다 코드, 대응 하 는 동작
2、 page
login_link_loc = (By.LINK_TEXT, " ")
def click_login_link(self):
# self.driver.find_element(By.LINK_TEXT, " ").click()
# find_element() by value. login_link_loc ,
self.driver.find_element(*self.login_link_loc).click()
def __init__(self, driver):
self.driver = driver
5. 코드 구조:
(1) basetestcase 패키지
import time
import unittest2
from selenium import webdriver
class BaseTestCase(unittest2.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(5)
def tearDown(self):
time.sleep(20)
(2) page 클래스 패키지
from selenium import webdriver
from selenium.webdriver.common.by import By
from page_object.my_dash_page import MyDashPage
class LoginPage:
# login_link_loc ,
# int a[2] = {2,3}
# a = 2 3 ?
login_link_loc = (By.LINK_TEXT, " ")
username_input_loc = (By.ID, "loginform-identity")
password_input_loc = (By.ID, "loginform-password")
login_button_loc = (By.NAME, "login-button")
url = "https://www.xueqingyun.com/"
def __init__(self, driver):
self.driver = driver
def open(self):
self.driver.get(self.url)
def click_login_link(self):
# self.driver.find_element(By.LINK_TEXT, " ").click()
# find_element() by value. login_link_loc ,
self.driver.find_element(*self.login_link_loc).click()
def input_username(self, username):
self.driver.find_element(*self.username_input_loc).send_keys(username)
def input_password(self, password):
self.driver.find_element(*self.password_input_loc).send_keys(password)
def click_login_button(self):
self.driver.find_element(*self.login_button_loc).click()
return MyDashPage(self.driver)
from selenium import webdriver
from selenium.webdriver.common.by import By
class MyDashPage:
true_name_loc = (By.XPATH, '//*[@id="w7"]/li[2]/a')
def __init__(self, driver):
self.driver = driver
def get_ture_name(self):
return self.driver.find_element(*self.true_name_loc).text
(3) 케이스 패키지
import time
import unittest2
from selenium import webdriver
from selenium.webdriver.common.by import By
from base.baseTestCase import BaseTestCase
from page_object.login_page import LoginPage
from page_object.my_dash_page import MyDashPage
class TestLogin(BaseTestCase):
def test_login(self):
lp = LoginPage(self.driver)
lp.open()
lp.click_login_link()
lp.input_username("username")
lp.input_password("111111")
# , ,
mdp = lp.click_login_button()
# ,
#mdp = MyDashPage(self.driver)
#
self.assertEqual(" AAA", mdp.get_ture_name())
if __name__ == '__main__':
unittest2.main()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
웹 요소 포 지 셔 닝 --- 팝 업 상자 AlertHTML DOM alert () 방법 은 alert 를 알 고 싶 으 면 먼저 [HTML DOM Window 대상] 을 알 아 보 세 요.Window 대상 은 브 라 우 저 에서 열 린 창 을 표시 합 니 다.문서 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.