Արդյո՞ք օբյեկտի նախաստորագրումը սելենիում POM- ի և էջի գործարանի միակ տարբերությունն է:


պատասխանել 1:

Հետևյալ տեղեկատվությունը գալիս է նախաձեռնության () մեթոդի PageDact դասի JavaDoc- ից:

public static T initElements (WebDriver վարորդ, դասի էջClassToProxy) {T էջ = ակնթարթային էջ (վարորդ, էջClassToProxy); նախաձեռնություններ (վարորդ, էջ); Ետ; }
  • Անհապաղ նշեք նշված դասի օրինակն ու որոշեք հետաձգված վստահված անձ յուրաքանչյուր WebElement- ի և յուրաքանչյուր ցուցակի համար, պայմանով, որ դաշտի անունը նաև HTML տարրի «ID» կամ «Անուն» է:

Սա նշանակում է, որ դասի համար.

հանրային դասի էջ {մասնավոր WebElement ներկայացում; }

Կլինի մի տարր, որը կարելի է գտնել xpath արտահայտությամբ

// * [@ id = 'ներկայացնել'] "կամ // * [@ name = 'ներկայացնել']
  • Լռելյայնորեն, նյութը կամ ցուցակը փնտրվում է ամեն անգամ, երբ մի մեթոդ է կանչվում: Այս պահվածքը փոխելու համար պարզապես մեկնաբանեք դաշտը ՝ օգտագործելով CacheLookup- ի անոտացիան: Տարրի դիրքը փոխելու համար օգտագործեք FindBy ծանոթագրությունը:

-------------------------------

Այսպիսով, եթե դուք օգտագործում եք PageFactive,

  1. WebElement- ը կամ ցուցակի փոփոխականները հայտարարվում են մասնավոր էջի օբյեկտի դասում: Եթե ​​WebElement փոփոխականը նույն անունն է, ինչ WebElement ID- ն կամ անվանման ատրիբուտը, ապա անհրաժեշտություն չկա տարրը նշելու համար գտնել տեղորոշիչ: Հակառակ դեպքում, տարրի հայտնաբերիչը նշվում է FindBy-AnnotationinitElements () մեթոդի միջոցով: Էջի օբյեկտի դասից յուրաքանչյուր վեբ տարրի համար ստեղծում է ծույլ պրոքսի: Այս վստահված անձը վեբ տարրը իր տեղորոշիչին է վերագրում: Այնուամենայնիվ, վեբ տարրը դեռ որոնված չէ, երբ այդ տարրն օգտագործվում է (զանգահարելով այնպիսի մեթոդներ, ինչպիսիք են ՝ կտտացնել (), getText (), isEnabled () և այլն): Պատահում է հետևյալը. Էջի դասի ընթացքում վեբ տարրին վերագրվող տեղորոշիչը ստացվում է: Տարրը որոնվում է զննարկչի գմբեթում: Երբ ապրանքը գտնվեց: Կոդը փոխազդում է դրա հետ: Եթե ​​չեք ցանկանում, որ ապրանքը փնտրվի ամեն անգամ, երբ այն օգտագործվում է զննարկչի գմբեթում, կարող է օգտագործվել CacheLookup- ի անոտացիա: Այս դեպքում տարրը պահվում է քեշից հետո, երբ առաջին անգամ գտնվելուց հետո

Սա էջի գործարանի ընդամենը կարճ պատմությունն է:

Շատ օգտակար է կարդալ կոդը և հասկանալ, թե ինչպես է այն գործում:

Սա հրաշք էր ինձ համար, քանի որ հասկանալու համար, թե ինչ է արել օրենսգիրքը, ես պետք է սովորեի այնպիսի բաներ, որոնք ես լավ չգիտեի, ինչպիսիք էին.

  • genericsreflectionlazy նախնական ձևավորման դասընթացներ

Պարզելու համար որոշ ժամանակ պահանջվեց, բայց ես շատ ուրախ եմ, որ արեցի:

Հաջողություն:

Ձեզ դուր եկավ այս հոդվածը և կցանկանայիք ավելին կարդալ:

Ստուգեք Quora իմ նոր բլոգը.

Սելենի խորհուրդներ և հնարքներ


պատասխանել 2:

POM- ում (Էջի օբյեկտի մոդել) դուք ստեղծում եք նոր դաս յուրաքանչյուր յուրաքանչյուր էջի / URL- ի համար և տեղադրեք ձեր տարրերի նույնականացման բոլոր մեթոդները:

Էջի գործարանը սելենիում գրություն է, որը դուք տալիս եք դասին: Այսպիսով, եթե դուք դասը սահմանում եք որպես էջի ֆաբրիկա, դասի ձեր բոլոր տարրերը բեռնված կլինեն, երբ դասի տարրերից մեկը կոչվում է: Թ

PS - Էջի գործարանը, կարծես, իսկապես վատ պրակտիկա է, եթե դասարանում ունեք տոննա տարրեր և օգտագործեք միայն մեկը: