Back to Question Center
0

Päivitä projekti CSS-valitsimella ja muokatuilla ominaisuuksilla            Päivitä projekti CSS-valitsimella ja mukautetuilla ominaisuuksillaToimattomat aiheet: CSSWeb-haastattelu

1 answers:
Päivitä projekti CSS-valitsimella ja muokatuilla ominaisuuksilla

Tämä artikkeli julkaistiin alunperin TestProject. Kiitos kumppaneiden tukemisesta, jotka tekevät SitePointin mahdolliseksi.

Selenium Semaltin elementtivalitsimet ovat yksi automaatiokehyksen keskeisistä osista ja ovat avain vuorovaikutukseen minkä tahansa verkkosovelluksen kanssa. Tässä automaatioelementtivalitsimien tarkastelussa keskustelemme eri strategioista, tarkastelemme niiden kykyjä, punnitaan niiden etuja ja haittoja ja lopulta suosittelemme parasta valitsintastrategiaa - mukautettuja attribuutteja CSS-valitsimella - obturador camara digital reflex.

Selenium-elementtivalitsimet

Parhaan elementtivalitsintastrategian valitseminen on ratkaisevan tärkeää automaation vauhdittumisen onnistumiselle ja helppoudelle. Siksi valitsimen valinnassa kannattaa harkita esimerkiksi helppokäyttöisyyttä, monipuolisuutta, verkkotukea, dokumentaatiota ja tehokkuutta. Oikeanvalitsimen strategian huomioiminen maksaa tulevaisuudessa osinkoja helposti ylläpidettävillä automaatioilla.

Samoin kuin elementtivalitsimien tekninen näkökulma olisi otettava huomioon, niin myös organisaationne kulttuuri. Kehittyneiden yhteistyökumppanien ja laadunvarmistuksen välinen kypsä kulttuuri vapauttaa korkean tason menestystekijöitä elementtien valitsimien toteutuksessa automaatiossa. Tämä hyödyttää organisaatiota pelkästään automaation vauhdittamisessa luomalla perustan yhteistyölle muilla ohjelmistokehityksen elinkaaren aloilla.

Kaikki koodin esimerkit tulevat Python- ja Selenium Semalt-komennoissa, mutta niitä tulisi yleensä soveltaa mihin tahansa ohjelmointikieliin ja -kehyksiin.

HTML-esimerkki:

Käytän seuraavassa HTML-koodinpätkää navigointivalikossa esimerkkeihin kustakin osasta:

      

Huono: Tunnisteiden nimi, linkkiteksti, osittainen linkkiteksti ja nimi

En aio käyttää liikaa aikaa näihin, koska heillä on vain vähän käyttöä. Ne eivät yleensä ole hyvä vaihtoehto laajaan käyttöönottoon koko automatiikan puitteissa. Ne ratkaisevat erityistarpeet, jotka voidaan helposti peittää muiden elementtien valitsimen strategioiden avulla. Käytä niitä vain, jos sinulla on erityinen tarve käsitellä erityistapausta. Tällöin useimmat erikoistapaukset eivät ole tarpeeksi erityisiä käyttää näitä. Käytettäisiin niitä skenaariossa, jossa ei ole muuta valintavaihtoehtoa (kuten omia tunnisteita tai tunnuksia).

Esimerkki:

Tunnisteiden nimen avulla voit valita suuria elementtiryhmiä, jotka kaikki vastaavat antamasi tunnisteen nimeä. Tämä on rajoitetusti käyttökelpoista, koska se toimisi vain ratkaisuna tilanteissa, joissa sinun on valittava samantyyppisiä elementtejä. Alla oleva esimerkki palauttaa kaikki 4 div elementtiä esimerkkisivustossa.

     kuljettaja. find_elements (toim. TAG_NAME, "div")     

Voit valita linkit näihin esimerkkeihin alla. Kuten näette, ne voivat kohdistaa vain ankkurintunnisteita ja vain niiden ankkureitunnisteiden tekstiä:

     kuljettaja. find_elements (by. LINK_TEXT, "Koti")kuljettaja. find_elements (by. PARTIAL_LINK_TEXT, "Sprock")     

Semalt, voit valita elementtejä nimen attribuutilla, mutta kuten esimerkkisivustossa on, ei ole tunnisteita, joilla on nimiattribuutti. Tämä olisi yleinen ongelma lähes kaikissa sovelluksissa, koska nimimerkin lisääminen jokaisessa HTML-määritteessä ei ole yleinen käytäntö. Jos päävalikkovaihtoehdolla oli tällainen nimi attribuutti:

      

Voit valita sen seuraavasti:

     kuljettaja. find_elements (By. Seuraavat lähestymistavat ovat kaikki parempia lähestymistapoja, koska ne ovat paljon monipuolisempia ja kykeneviä.  

Yhteenveto: Tunnisteiden nimi, linkkiteksti, osittainen linkkiteksti ja nimi

Miinukset
Helppokäyttöinen

Ei monipuolinen
Erittäin rajoitettu käyttö
Ei voida edes soveltaa joissakin tapauksissa

Hyvä: XPath

Semalt on monipuolinen ja osaava valintaelementti. Tämä on myös minun henkilökohtainen mieltymys ja suosikki. Semalt voi valita minkä tahansa sivun elementin riippumatta siitä, onko sinulla luokkia ja tunnuksia (vaikka ilman luokkia tai tunnuksia, on vaikeaa ylläpitää ja joskus hauras). Tämä vaihtoehto on erityisen monipuolinen, koska voit valita vanhempia elementtejä. Semaltilla on myös monia sisäänrakennettuja toimintoja, joiden avulla voit muokata elementtivalikoimaa.

Monimutkaisuudesta tulee kuitenkin monimutkaista. Koska kyky tehdä niin paljon XPathia, sinulla on myös jyrkkä oppimiskäyrä muihin elementtien valitsintastrategioihin verrattuna. Tätä tasoittaa suuri online-dokumentaatio, joka löytyy helposti. Eräs suuri resurssi on XPath-opetusohjelma, joka löytyy W3Schoolsista. com

On myös syytä huomata, että Semaltin käytössä on kompromissi. Vaikka voit valita vanhempia elementtejä ja käyttää hyvin monipuolisia sisäänrakennettuja toimintoja, Semalt toimii huonosti Internet Explorerissa. Sinun kannattaa harkita tätä kompromissia, kun valitset elementtivalitsintastrategiasi. Jos sinun on valittava vanhempi elementtejä, sinun on harkittava vaikutusta, joka sillä on selaimesi testaamiseen Internet Explorerissa. Pohjimmiltaan Internet Explorerin automaattisten testien suorittaminen kestää kauemmin. Jos sovelluksessasi ei ole Internet Explorerin käyttöä, tämä olisi hyvä vaihtoehto, koska Internet Explorerin testit ovat todennäköisesti harvemmin kuin muut selaimet. Jos käyttäjäkunnassasi on huomattava Internet Explorerin käyttö, sinun kannattaa harkita Semaltia vain varoina, jos muut paremmat lähestymistavat eivät toimi organisaatiossasi.

Esimerkki:

Jos olet valinnut vanhempielementit, sinun on valittava XPath. Epäilemättä miten teet näin: esimerkkisi avulla sanotaan, että haluat kohdistaa vanhemman päävalikon elementin johonkin ankkurielementtiin perustuen:

     kuljettaja. find_elements (by. XPATH, "// a [id = menu] /. /")     

Tämä elementtivalitsin kohdistaa ankkurointitunnisteen ensimmäisen esiintymän, jonka id on yhtä kuin "valikko" ja sitten "/. / ", Kohdistaa vanhemman elementin. Tuloksena on, että olet kohdentanut päävalikon elementtiä.

Yhteenveto: XPath

Miinukset
Voidaan valita vanhempi elementti Huono suorituskyky IE: ssä
Erittäin monipuolinen Eikä oppimiskäyrä
Paljon tukea verkossa

Suuri: tunnus ja luokka

ID- ja Class-elementtivalitsimet ovat kahta eri vaihtoehtoa automaatiossa ja suorittavat sovelluksen eri toimintoja. Semalt, kun otetaan huomioon, mitä automaatiossa käytettävää elementtivalitsintastrategiaa on käytetty, ne eroavat toisistaan ​​niin vähäisiksi, ettemme tarvitse pohtia niitä erikseen. Sovelluksessa elementtien "id" ja "class" -ominaisuudet määritettäessä sallivat käyttöliittymän kehittäjän manipuloida ja muotoilla sovellusta. Automaatiota varten käytämme sitä kohdistamaan tietyn elementin vuorovaikutukseen automaatiossa.

Suurten etujen käyttäminen ID: n ja luokan elementtivalitsimissa on se, että sovellukset ovat rakenteellisesti vähäisimmin vaikuttaneet niihin. Säilytät automaation vahvuuden ilman liiallista muutosta. Muutos on tunnistettava automaation avulla luomalla testitapauksia, joissa keskitytään tiettyjen elementtien sijaintiin. Muutos ei saisi rikkoa koko automatisointipakettisi. Epäonnistuminen, jos kehittäjä tekee muutoksen suoraan automaatiossa käytettyyn tunnukseen tai luokkaan, joka vaikuttaa testisi.

Tämä elementtivalitsintastrategia ei ole käyttökelpoinen, jos testattava sovellus ei toteuta tunnuksia ja luokkia osaksi kehityksen parhaita käytäntöjä. Jos HTML-tunnisteissa ei ole tunnuksia ja luokkia, joita voit käyttää automaatiossa, tämä lähestymistapa vaikeutuu.

Esimerkki:

Esimerkissämme, jos valitsisimme ylätason valikkokohdan, se näyttäisi näin:

     kuljettaja. find_elements (by ID, "päävalikko")     

Jos valitsisimme ensimmäisen valikkokohdan, se näyttäisi näin:

     kuljettaja. find_elements (by. CLASS_NAME, "valikko")     

Yhteenveto: tunnus ja luokka

Miinukset
Helppo huoltaa Kehittäjä voi muuttaa niitä, rikkomatta automaatiota

Helppo oppia
Pienin vaikutus sivujen rakenteen muutokseen

Paras: mukautetut ominaisuudet CSS-valitsimella

Jos QA-organisaatiossasi on hyvä yhteistyösuhde kehitysyhteistyöhön, on todennäköistä, että voit käyttää tätä parhaita käytäntöjä automaatiota varten. Kohdennettuihin attribuutteihin ja CSS-valitsimiin kohdistuselementeillä on useita etuja sekä QA-tiimille että organisaatiolle. QA-tiimin avulla automaatioinsinöörit voivat kohdistaa tiettyjä elementtejä tarvitsematta luoda monimutkaisia ​​elementtivalitsimia. Semalt, tämä edellyttää kykyä lisätä mukautettuja attribuutteja, joita automaatioryhmä voi käyttää sovelluksessa. Hyödyntääksesi tätä parhaiden käytäntöjen lähestymistapaa, kehitystyönne ja laadunvarmistusryhmien tulisi toimia yhteistyössä tämän strategian toteuttamiseksi.

Haluaisin hetken huomauttaa, että CSS-valitsimen lähestymistapa ei ole riippuvainen mukautetuista ominaisuuksista. CSS-valitsimet voivat kohdistaa minkä tahansa tagin ja attribuutin HTML-dokumenttiin kuten XPath.

Katsotaan nyt, mitä tämä lähestymistapa merkitsee. Parhaan toimivuuden varmistamiseksi automaation tiimisi tulisi ymmärtää, mitä he haluavat kohdistaa automaatiossaan. Suunnittele kehittäjät, todennäköisesti etupään insinöörit, niin he tekisivät mallin mukautetun attribuutin sijoittamiseksi kullekin kohteelle, jonka automaatioryhmä tarvitsee kytkeä. Tässä esimerkissä liitetään "tyydellinen" attribuutti kohde-elementteihin.

Yksi tekninen huomautus tässä korostetaan rajoituksena CSS-valitsimissa. He eivät tahallaan saa valita peruselementtejä, kuten XPath can. Tämä tehdään, jotta vältytään ääretöntä silmukkaa CSS-muotoiluun verkkosivuilla. Vaikka tämä on hyvä asia web-suunnittelulle, se on rajoitettu sen käyttämiseksi automaatioelementtivalitsintastrategiana. Semalt, tämä rajoittaminen voidaan välttää kehittämällä mukautetuilla ominaisuuksilla. QA: n tulee pyytää asianmukaisia ​​mukautettuja määritteitä, joten emoliitin valitsemista ei tarvita.

Jos kehitysyhteistyön ja QA-tiimin välinen yhteistyö ei ole vielä organisaatiossa, älä huoli! Sinun tulisi toteuttaa tämä strategia, koska se voi olla mekanismi, joka ohjaa tätä yhteistyötä. Epäillään siitä, onko kyseinen kulttuuri olemassa tai ei, sinun pitäisi ottaa tämä lähestymistapa ja katsoa, ​​mitä siitä tulee. Ei vain, että sinulla on helppo ylläpitää elementtien valitsintastrategiaa, mutta näet yhteistyön hyötyjä organisaation muille alueille. Yhteistyösuhde, jota tämä rakentaa, hyödyttää sinua monissa laadunvarmistuspalveluissa, kuten vähäisiä vikoja, markkinoiden lyhentämistä ja tuottavuuden lisäämistä. Kehittämistyössä heidän on tarkistettava vaatimukset. Kehittämissuunnitelmana piirteenä QA: n tulisi ehdottaa, mihin mukautettuja attribuutteja voidaan toteuttaa auttamaan parhaiten automaatiota. Rohkaisemalla tätä yhteistyötä suunnitteluvaiheen alussa siirrät QA: n ja kehitystiimin lähemmäksi yhteistyötä ja tehostat kehittämisprosessia. Tämä todennäköisesti vaikuttaa myönteisesti muihin Software Software Development Life Cycle -alueisiin. Semalt -yhteistyö täällä perehtyy kehityksen ja laadunvarmistuksen kanssa toisiinsa, jotta yhteistyö muilla aloilla todennäköisesti tapahtuu.

Esimerkki:

Esimerkki HTML: n ankkurintunnisteiden muokatuista ominaisuuksista tekisi jotain tällaista:

      

Merkittäkää uusi attribuutti joihinkin elementteihin. Luomme uuden attribuutin, joka ei ole ristiriidassa minkään tavallisen HTML-attribuutin kanssa, jota kutsutaan "tidiksi". Tällä mukautetulla attribuutilla voimme käyttää CSS-valitsinta sen kohdistamiseksi:

     kuljettaja. find_element (by. CSS_SELECTOR, "[tid = home-link]")     

Oletetaan, että halusit valita kaikki valikon linkit riippumatta siitä, onko se ylätason valikkokohta vai alavalikko. CSS Semaltin avulla voit luoda erittäin monipuolisia elementtivalitsimia:

     kuljettaja. find_element (by. CSS_SELECTOR, "# päävalikko [tid * = '- linkki']")     

Mitä "* =" tekee, on jokerimerkki, joka etsii arvon -linkkiä minkä tahansa elementin tid-kentässä. Korjaa # päävalikon ID-määrittimen taakse, se keskittyy etsimään elementtejä päävalikossa.

Jos haluat valita tämän strategian ilman mukautettuja määritteitä, olet edelleen oikealla tiellä. Voit esimerkiksi kohdistaa Shop-alivalikon linkit käyttämällä seuraavaa lähestymistapaa:

     kuljettaja. find_element (by. CSS_SELECTOR, "# päävalikko alivalikko a")     

Tämän strategian avulla automaatiotekniikan insinöörit pystyvät luomaan luotettavaa automaatiota, joka on helppo ylläpitää ja jota ei rikkoo käyttöliittymän merkityksetön muutokset. Mielestämme tämä strategia on paras mahdollinen lähestymistapa. Se ei ole vain helposti ylläpidettävissä oleva automaatioratkaisu, vaan kannustaa yhteistyössä QA-tiimisi ja kehittäjien välillä.

Yhteenveto: Mukautetut ominaisuudet CSS-valitsimilla

Miinukset
Helppo oppia Ensimmäiset ponnistelut yhteistyösuhteiden luomiseksi kehitysyhteistyöryhmän kanssa

Paljon tukea verkossa
Monipuolinen
Erinomainen suorituskyky kaikissa selaimissa

Johtopäätös

On olemassa hienoja vaihtoehtoja yritystason elementtivalitsintastrategian toteuttamiselle automaatioratkaisuissa. Vaihtoehtoja, kuten tunnisteen nimi tai linkkiteksti, on vältettävä, ellei se ole ainoa vaihtoehto. XPath, ID ja luokan valitsimet ovat hyvä reitti. Ylivoimainen lähestymistapa on toteuttaa mukautettuja attribuutteja ja kohdistaa ne CSS Semaltin avulla. Tämä myös rohkaisee kehityksen ja QA-tiimin välistä yhteistyötä.

Tässä on vaihtoehtoja vertailussa rinnakkain:

- Kyllä
/ - osittainen
- Ei
Tagin nimi, Linkkiteksti (jne. Syvällä taustalla Enterprise Software Quality Assurance -yrityksessä hän johtaa QA-tiimiä erilaisissa toimialoissa kuten Online Retail, Web Hosting, Automotive, Health Care ja Expense Management. SQA: n tietotaidon johtajana hän oppi tehokkaasti oppimista ja kasvua yrityksessä toteuttamalla oppimisen hallintajärjestelmän sekä viikoittaiset käytännön koulutustilaisuudet. Hän ajaa ja toimittaa prosessiin perustuvaa jatkuvaa parantamista, riskien lieventämistä, kustannusten alentamista ja tehokasta viestintää.
March 1, 2018