Back to Question Center
0

Բարձրացրեք ձեր նախագիծը CSS ընտրիչի եւ անձնական հատկանիշների հետ            Բարձրացրեք ձեր նախագիծը CSS ընտրիչի եւ անհատական ​​հատկանիշների հետ: CSSWeb Semalt

1 answers:
Բարձրացնել ձեր նախագիծը CSS ընտրիչի եւ անձնական հատկանիշների հետ

Այս հոդվածը նախապես հրապարակվել է TestProject- ի կողմից: Շնորհակալություն SitePoint- ի հնարավոր դարձնող գործընկերներին աջակցելու համար:

Selenium Semalt- ի տարր ընտրողներն ավտոմատացման շրջանակի հիմնական բաղադրիչներից են եւ ցանկացած վեբ հավելվածի հետ փոխգործակցության բանալին: Ավտոմատացման տարրերի ընտրողների այս վերանայում մենք կքննարկենք տարբեր ռազմավարությունների, ուսումնասիրելու իրենց հնարավորությունները, կշռադատեն իրենց կողմերն ու մտահոգությունները եւ, ի վերջո, առաջարկում են լավագույն ընտրության ռազմավարություն `մաքսային հատկանիշները CSS ընտրիչով:

Selenium Element ընտրողներ

Ընտրելով լավագույն տարրը ընտրող ռազմավարությունը կարեւոր է ձեր ավտոմատացման ջանքերի հաջողությունների եւ հեշտության համար: Հետեւաբար, երբ ընտրեք ձեր ընտրողը, պետք է հաշվի առնել այնպիսի ասպեկտներ, ինչպիսիք են օգտագործման հեշտությունը, բազմակողմանիությունը, առցանց աջակցությունը, փաստաթղթերը եւ կատարումը: Սեֆիլտը վերաբերում է պատշաճ սելեկտի ռազմավարությանը, ապագայում դիվիդենտներ վճարելու միջոցով, ավտոմատ կերպով պահպանելու միջոցով:

14) Ինչպես էլ տարրական սեկտորների տեխնոլոգիական ասպեկտը պետք է դիտարկել, այնպես էլ պետք է լինի ձեր կազմակերպության մշակույթը: Ստեղծագործողների եւ QA- ի միջեւ համագործակցության մշակված մշակույթը կկարողանա բացել ձեր հաջողության բարձր թիրախները `ձեր ավտոմատացման մեջ տարր ընտրողներին իրականացնելիս: Սա նպաստում է կազմակերպությանը, բացառությամբ ավտոմատացման ջանքերի, Ծրագրային ապահովման զարգացման ցիկլի այլ ոլորտներում համագործակցության հիմքի վրա դնելով:

Բոլոր կոդերի օրինակներ կլինեն Python- ում եւ Selenium Semalt- ի հրամաններում, սակայն պետք է ընդհանրապես կիրառելի լինեն ցանկացած ծրագրավորման լեզու եւ շրջանակ:

HTML օրինակ `

Ես կօգտագործեմ նիշքի մենյուի հետեւյալ HTML հատվածը, յուրաքանչյուր բաժնի օրինակներ.

            

Վատ: Tag անուն, հղում տեքստ, մասնակի հղում տեքստ եւ անուն

Ես շատ ժամանակ չեմ ծախսի նրանց վրա, քանի որ նրանք բոլորն էլ սահմանափակ օգտագործման կարիք ունեն: Նրանք, ընդհանուր առմամբ, լավ տարբերակ են ողջ ընդգրկվածության ողջ ավտոմատացման շրջանակներում: Նրանք որոշում են կոնկրետ կարիքները, որոնք կարող են հեշտությամբ ծածկվել այլ տարրերի ընտրության ռազմավարություններով: Միայն օգտագործեք դրանք, եթե ունեք հատուկ գործի յուրահատուկ անհրաժեշտություն: Այնուամենայնիվ, այդ դեպքերից օգտվելու համար հատուկ դեպքերն առանձնահատուկ չեն: Դուք օգտագործում եք դրանք սցենարով, որտեղ ձեզ համար մատչելի այլ ընտրանք չկա (օրինակ, մաքսային պիտակներ կամ ID):

Օրինակ `

Tag անունով, դուք կարող եք ընտրել տարրերի մեծ խմբեր, որոնք բոլորն էլ համապատասխանում եք ձեր պիտակի անունին: Սա սահմանափակ օգտագործվում է, քանի որ այն կգործի միայն որպես լուծում, երբ դուք պետք է ընտրեք նույն տիպի տարրերի խոշոր խմբերը: Ստորեւ բերված օրինակը կվերադառնա HTML- ի բոլոր օրինակները բոլոր 4 տարրերից:

     վարորդը: find_elements (By TAG_NAME, "div")     

Դուք կարող եք ստորեւ նշված օրինակներով ընտրել հղումները: Ինչպես տեսնում եք, դրանք կարող են ուղղորդել միայն խարիսխ պիտակներ եւ միայն այդ խարիսխների տեքստը.

     վարորդը: find_elements (By: LINK_TEXT, "Տուն")վարորդը: find_elements (By PARTIAL_LINK_TEXT, "Sprock")     

Semalt, Դուք կարող եք ընտրել տարրեր անունով հատկանիշով, բայց ինչպես դուք կարող եք տեսնել HTML- ի օրինակը, անունը հատկանիշով պիտակներ չկան: Դա գրեթե ցանկացած հայտում ընդհանուր խնդիր կլինի, քանի որ յուրաքանչյուր HTML հատկանիշում ավելացնելով անունի հատկանիշը սովորական պրակտիկա չէ: Եթե ​​հիմնական ընտրացանկի տարրը այսպես կոչված հատկություն ունի,

            

Կարող եք ընտրություն կատարել այսպես.

     վարորդը: find_elements (By. Հետեւյալ մոտեցումները բոլորն ավելի լավ մոտեցումներ են, քանի որ դրանք շատ ավելի բազմակողմանի եւ ունակ են:  

Ամփոփում. Tag անուն, հղում տեքստ, մասնակի հղում տեքստ եւ անուն

Ընդդիմադիր Cons
Հեշտ օգտագործման համար

Ոչ բազմակողմանի
Ծայրահեղ սահմանափակ օգտագործումը
Չի կարող նույնիսկ որոշ դեպքերում կիրառել

Լավ: XPath

Սեմալտը բազմակողմանի եւ ունակ տարր ընտրանքային ռազմավարություն է: Սա նաեւ անձնական նախապատվություն եւ սիրված է: Սեմալտը կարող է ընտրել ցանկացած տարր էջում, անկախ նրանից, թե արդյոք ունեք դասեր եւ ID- ներ օգտագործելու համար (չնայած առանց դասերի կամ ID- ների, դժվար է պահպանել եւ երբեմն փխրուն): Այս տարբերակը հատկապես բազմակողմանի է, քանի որ կարող եք ընտրել ծնողի տարրերը: Semalt- ն ունի բազմաթիվ ներկառուցված գործառույթներ, որոնք թույլ են տալիս հարմարեցնել ձեր տարր ընտրությունը:

Այնուամենայնիվ, բազմակողմանիությամբ գալիս է բարդություն: Հաշվի առնելով XPath- ի հետ այսքան հնարավորությունը, դուք նաեւ ունենաք ավելի կոշտ ուսուցման կորի համեմատ այլ տարրերի ընտրանքային ռազմավարությունների համեմատ: Սա փոխկապակցված է մեծ առցանց փաստաթղթերով, որը հեշտությամբ հայտնաբերված է: Մի մեծ ռեսուրս է XPath- ի ուսումնական ձեռնարկ W3Schools- ում: com

14) Պետք է նաեւ նշել, որ Սեմալթը օգտագործվում է առեւտրի դեպքում: Թեեւ կարող եք ընտրել ծնողի տարրերը եւ օգտագործեք շատ բազմակողմանի ներկառուցված գործառույթներ, Semalt- ը վատ կատարում է Internet Explorer- ում: Դուք պետք է հաշվի առնեք այս առեւտրային գործարքը, երբ ընտրեք ձեր տարր ընտրող ռազմավարությունը: Եթե ​​դուք պետք է կարողանաք ընտրել ծնողի տարրերը, դուք պետք է հաշվի առնեք այն ազդեցությունը, որը կունենա Internet Explorer- ում ձեր խաչաձեւ բրաուզերի փորձարկման վրա: Իրոք, ավելի երկար ժամանակ է պահանջվում Internet Explorer- ում ձեր ավտոմատացված թեստերը գործարկել: Եթե ​​Ձեր դիմումի օգտագործողի բազան չունի Internet Explorer- ի բարձր օգտագործումը, դա լավ տարբերակ կլինի ձեզ համար, քանի որ կարող եք դիտարկել Internet Explorer- ի վազքի փորձարկումն ավելի քիչ, քան մյուս բրաուզերները: Եթե ​​ձեր օգտագործողի բազան ունի նշանակալի Internet Explorer օգտագործման, դուք պետք է հաշվի առնեք Semalt- ը որպես պահուստ, եթե այլ մոտեցումներ չգործեն ձեր կազմակերպության համար:

Օրինակ `

Եթե ծնողի տարրերը ընտրելու պահանջ ունեք, ապա պետք է ընտրեք XPath- ը: Սեմալտը, թե ինչպես եք դա անում, օգտագործելով մեր օրինակը, ասենք, ուզում եք նշել ծնողի հիմնական ցանկի տարրը `խարիսխի տարրերից մեկի վրա - oculus oakley masculino polarizado en.

     վարորդը: find_elements (By, XPATH, "// a [id = menu] /. /"))     

Այս տարր ընտրողը կկանգնի խարիսխի տողի առաջին օրինակը, որը ID- ին հավասար է «մենյուին», այնուհետեւ «/»: . / ", Թիրախ է ծնողի տարրը: Արդյունքն այն է, որ դուք կստանաք հիմնական ցանկի տարրը:

Ամփոփում `XPath

Ընդհանուր Cons
Կարող է ընտրել ծնողի տարրը ԵՀ-ում վատ կատարում
Բարձր բազմակողմանի Լույսի ուսման կորը
Շատ աջակցություն առցանց

Մեծ: ID եւ դաս

ID եւ դասի տարրերի ընտրողներն ավտոմատացման երկու տարբերակ են եւ կատարում են տարբեր գործառույթներ դիմումում: Սեմալտը, ձեր էլեկտրոնային տարրերի ընտրության ռազմավարությունը ձեր ավտոմատացման մեջ օգտագործելու համար, դրանք այնքան քիչ են տարբերվում, որ դրանց կարիքը չպետք է դիտարկել առանձին: Դիմումում տարրերի «id» եւ «դասի» ատրիբուտները թույլատրվում են UI մշակողի կողմից կիրառել մանիպուլյացիան եւ ձեւավորել դիմումը: Ավտոմատացման համար մենք օգտագործում ենք այն ավտոմատացման մեջ փոխգործակցության որոշակի տարրեր:

14) ID- ների եւ դասի տարրերի սելեկտորների օգտագործման մեծ օգուտը այն է, որ դրանք նվազագույն ազդեցություն են ունենում դիմումի կառուցվածքային փոփոխությունների վրա. Դուք պահպանում եք ձեր ավտոմատացման կայունությունը, առանց փոփոխության փոփոխության: Փոփոխությունը պետք է հայտնաբերվի ավտոմատացման միջոցով, ստեղծելով փորձարկման դեպքեր, որոնք կենտրոնանում են որոշակի տարրերի տեղակայման վրա: Փոխումը չպետք է կոտրել ձեր ամբողջ ավտոմատացման համարը: Սեմալտը, եթե մշակողն անմիջապես փոփոխություն կատարի ավտոմատացման մեջ օգտագործված ID- ն կամ դասը, ինչը կազդի ձեր թեստերի վրա:

14) Այս ընտրանքային ընտրանքային ռազմավարությունը չի կարող օգտագործվել, եթե փորձարկված հայտը չի իրականացնում ID- ները եւ դասերը որպես լավագույն փորձի զարգացման մի մաս: Եթե ​​HTML- ի պիտակները չունենան ID- ները եւ դասերը, կարող եք օգտագործել ձեր ավտոմատացման մեջ, այս մոտեցումը դառնում է դժվար:

Օրինակ `

Մեր օրինակում, եթե մենք ընտրեինք վերին մակարդակի ընտրացանկի տարրը, ապա դա կանդրադառնա հետեւյալը.

     վարորդը: find_elements (By ID- ն, «հիմնական մենյու»)     

Եթե մենք ընտրենք առաջին ընտրացանկը, ապա դա կանդրադառնա հետեւյալը.

     վարորդը: find_elements (By: CLASS_NAME, "մենյու")     

Ամփոփում `ID եւ դաս

Ընդդիմադիր Cons
Հեշտ է պահպանել Ստեղծողը կարող է փոխել դրանք, խախտելով ավտոմատացումը

Հեշտ է սովորել
Էջի կառուցվածքի փոփոխության նվազագույն ազդեցությունը

Լավագույնը. Պատվավոր հատկանիշներ CSS Selector- ի հետ

Եթե ձեր ՔԱ կազմակերպությունը լավ համագործակցային հարաբերություններ ունի զարգացման հետ, հնարավորություններ կստանաք ձեր ավտոմատացման համար լավագույն փորձի կիրառումը: Օգտագործելով մաքսային հատկանիշները եւ CSS սելեկտորները թիրախային տարրերի համար, բազմակի օգուտներ կան ինչպես QA թիմի, այնպես էլ կազմակերպության համար: QA- ի թիմի համար դա թույլ է տալիս ավտոմատացման ինժեներներին թիրախավորել կոնկրետ տարրեր `առանց բարդ տարր ընտրողների ստեղծելու: Սեմալը, սա պահանջում է, որ ավտոմատացման թիմը կարող է կիրառել հայտում կիրառվող մաքսային հատկանիշներ: Օգտագործել այս լավագույն պրակտիկայի մոտեցումը, ձեր զարգացման եւ QA թիմերը պետք է համագործակցեն համագործակցելու համար այս ռազմավարությունը իրականացնելու համար:

Ցանկանում եմ մեկ րոպե տեւել, որ CSS Selector- ի մոտեցումը կախված չէ մաքսային հատկանիշներից: CSS ընտրողները կարող են թիրախավորել ցանկացած տիպի եւ հատկանիշ HTML փաստաթղթում, ինչպես XPath- ի նման:

Այժմ եկեք նայենք, թե ինչ է այս մոտեցումը: Լավագույն գործառույթն այն է, որ ձեր ավտոմատացման թիմը պետք է հասկանա, թե ինչ են ուզում, որ իրենց ավտոմատացման ժամանակ: Սեմալտը մշակողների հետ, ամենայն հավանականությամբ, ճակատային վերջնական ճարտարագետների կողմից, նրանք այնուհետեւ մշակելու են մաքսային հատկանիշի օրինակ, որպեսզի յուրաքանչյուր թիրախ դառնա ավտոմատացման թիմը: Այս օրինակի համար թիրախային տարրերին կցում ենք «շտապ» հատկանիշ:

Տեխնիկական նշում է այստեղ, CSS սելեկտորների սահմանափակում: Նրանք միտումնավոր թույլ չեն տվել ընտրել XPAT- ի նման ծնողի տարրերը: Սա արվում է խուսափելու անսահմանափակ հանգույցներից CSS- ում ոճի ձեւավորման վրա: Թեեւ դա լավ բան է վեբ դիզայնի համար, դա սահմանափակման համար օգտագործման համար որպես ավտոմատացման տարր ընտրության ռազմավարություն: Սեմալտը, այս սահմանափակումը կարող է խուսափել զարգացման միջոցով իրականացվող մաքսային հատկանիշներով: QA- ն պետք է պահանջի պատշաճ մաքսային հատկանիշներ, որպեսզի կարիք չկա ընտրել ծնող տարր:

Եթե ձեր զարգացման եւ ՔԱ թիմի միջեւ համագործակցությունը դեռեւս գոյություն չունի ձեր կազմակերպության մեջ, մի անհանգստացեք: Դուք պետք է իրականացնեք այս ռազմավարությունը, քանի որ դա կարող է լինել այն մեխանիզմը, որը խթանում է այդ համագործակցությունը: Սեդրտը, թե արդյոք այդ մշակույթը գոյություն ունի, թե ոչ, դուք պետք է վերցնեք այս մոտեցումը եւ հետեւեք, թե ինչ է կատարվում: Ոչ միայն հեշտ կլինի պահպանել տարրերի ընտրանքային ռազմավարությունը, բայց դուք կտեսնեք, որ ձեր համագործակցությունն ավելի թափանցիկ է ձեր կազմակերպության այլ ոլորտներում: Կառուցվող համագործակցային հարաբերությունները ձեզ կօգնեն որակի ապահովման բազմաթիվ ասպեկտներ, ինչպիսիք են նվազեցված թերությունները, շուկայական ժամանակի նվազեցումը եւ արտադրողականության բարձրացումը. Զարգացման հետ աշխատելով, նրանք պետք է վերանայեն պահանջները: Քանի որ զարգացումը նախագծում է հնարավորությունը, QA- ն պետք է առաջարկել, թե որտեղ կարող է կիրառվել մաքսային հատկանիշները `լավագույնս աջակցելու ավտոմատացման ջանք: Այս համագործակցությունը խթանելով դիզայնի փուլում, դուք կկատարեք QA- ի եւ զարգացման թիմերի միջեւ համագործակցությունը եւ զարգացնելու արդյունավետությունը: Սա, ամենայն հավանականությամբ, կունենա շահավետ լիցքաթափման ազդեցություն Ծրագրային ապահովման զարգացման ցիկլի այլ ոլորտներում: Սեմեսթ համագործակցության արդյունքում այստեղ կծանոթացնեն զարգացումն ու ԿՀ-ն միմյանց հետ, որպեսզի հնարավոր լինի համագործակցել այլ ոլորտներում:

Օրինակ `

Սեմալտի մաքսային հատկանիշները HTML- ի մեր HTML- նակի տողերի վրա կարող են հանգեցնել հետեւյալ բանին.

            

Սեֆտալացնել նոր հատկանիշը որոշ տարրերի մեջ: Մենք ստեղծել ենք նոր հատկանիշ, որը չի հակասում «tid» ստանդարտ HTML հատկանիշին: Այս մաքսային հատկանիշով, մենք կարող ենք օգտագործել CSS ընտրող `այն նպատակ ունենալով.

     վարորդը: find_element (By: CSS_SELECTOR, "[tid = home-link]")     

Եկեք ասենք, ուզում ես ընտրեք բոլոր հղումները մենյուում, անկախ նրանից, թե արդյոք այն վերին մակարդակի մենյուի կետ կամ ենթաօրենսդրություն է: CSS Semalt- ով դուք կարող եք ստեղծել բարձր բազմակողմանի տարր ընտրողներ.

     վարորդը: find_element (By: CSS_SELECTOR, "# հիմնական-մենյու [tid * = '- հղում']")     

Ինչ է «* =» -ը անում է «ցանկացած» տարրերի դաշտի մեջ «-link» արժեքի որոնում: Semalt- ը սա է # հիմնական մենյուի ID- ի նշագծի ետեւում, այն կենտրոնանում է տարրերի որոնումը հիմնական ցանկի մեջ:

Եթե ցանկանում եք ընտրել այս ռազմավարությունը առանց մաքսային հատկանիշների օգտագործման, դուք դեռ շարունակում եք ճիշտ ուղու վրա: Օրինակ, Դուք կարող եք Թիրախի ներքո ներքեւում օգտագործել հղումները, օգտագործելով հետեւյալ մոտեցումը.

     վարորդ: find_element (By: CSS_SELECTOR, "# հիմնական-մենյու submenu a")     

Այս ռազմավարությունը թույլ կտա ավտոմատ ինժեներներին ստեղծել ամուր ավտոմատացում, որը հեշտ է պահպանել եւ չի խախտվում UI- ի անտեղի փոփոխություններով: Semest այս ռազմավարությունը լավագույն մոտեցումն է: Դա ոչ միայն հեշտությամբ պահպանելի լուծում կլինի ավտոմատացման համար, այլ կխթանի համագործակցությունը ձեր QA թիմի եւ ձեր մշակողների միջեւ:

Ամփոփում. Պատվերով հատկանիշներ CSS ընտրողների հետ

Ընդհանուր Cons
Հեշտ է սովորել Նախնական ջանքերը ներգրավված են զարգացման թիմի հետ համագործակցային հարաբերությունների հաստատման գործում

Շատ աջակցություն առցանց
Հարմարավետ
Գերազանց կատարում բոլոր բրաուզերում

եզրակացություն

Կան ավտոմատացված համակարգում ձեռնարկության ստանդարտ ընտրանքային ռազմավարության իրականացման համար որոշակի մեծ ընտրանքներ: Ընտրեք տեքստային անունը կամ հղում տեքստը, եթե դա ձեր միակ տարբերակն է: XPath, ID- ն եւ Class սելեկտորները լավ երթուղի են: Մինչեւ լավագույն մոտեցումը մաքսային հատկանիշներն իրականացնելն է եւ դրանք ուղղված CSS սեմալտին: Սա նաեւ խրախուսում է համագործակցությունը զարգացման եւ QA թիմի միջեւ:

Ահա ձեր տարբերակները համեմատած կողք կողքի `

- Այո
/ - մասնակի
- Ոչ
Tag անունը, ՈՒղեցույց տեքստ (եւ այլն). Ծրագրային ապահովման որակի ապահովման ոլորտում խորը հիմնադրամ ունենալով, նա ղեկավարում է QA թիմերը տարբեր ոլորտներում, ինչպիսիք են Online Retail, Web Hosting, Automotive, Health Care եւ ծախսերի կառավարում: Որպես SQA²- ի Գիտելիքների գծով գլխավոր մասնագետ, նա ուսուցողական կառավարման համակարգի ներդրման, ինչպես նաեւ շաբաթական տեխնիկայի վերապատրաստման դասընթացների միջոցով բերեց ձեռնարկությունում արդյունավետ ուսուցում եւ աճ: Նա քշում եւ առաքում է գործընթացի վրա հիմնված շարունակական բարելավում, ռիսկի մեղմացում, ծախսերի կրճատում եւ արդյունավետ հաղորդակցություն:
March 1, 2018