handling web tables frames
У прошлом водичу за Селениум ВебДривер научили смо разне уобичајене и рутински коришћене команде Селениум ВебДривер укључујући важне теме попут руковања ифраме-ом и изузецима у Селениум скриптама.
Напредујемо у нашем свеобухватном серија туторијала о селенијуму , у овом водичу о којем бисмо разговарали руковање веб табелама, ифраме и динамичким елементима који су суштински део сваког веб пројекта.
Овај водич се састоји од 3 различите теме и механизама руковања у скриптама селена.
- Веб табеле / ХТМЛ табеле
- Оквири
- Динамички елементи
Шта ћете научити:
# 1) Веб табеле / ХТМЛ табеле
У овом модулу ћемо научити о веб табелама или ХТМЛ табелама на веб страници, ознакама доступним у ХТМЛ-у и начину динамичког руковања веб табелама.
Веб табеле су у основи група елемената који се логички чувају у формату редова и колона. Користи се за организовање сличних информација на веб страници.
Испод је пример Хтмл табеле:
Испод је исечак ХТМЛ структуре ХТМЛ табеле:
Испод ознаке су генерално дефинисане у хтмл табелама:
Ознака 1.’табле дефинише ХТМЛ табелу.
2.'тбоди ’ознака дефинише контејнер за редове и колоне.
3.'тр ’дефинише редове у ХТМЛ табели.
4.'тд / 'тх' дефинишу колону ХТМЛ табеле.
Пронађите детаље веб табеле:
Постоји много начина на које можемо да радимо са веб табелом.
апликација за шпијунирање андроид телефона
Приступ бр. 1 :
Испод је кпатх једне од ћелија у хтмл табели. Рецимо „име“
// див (@ ид = ’маин’) / табле (1) / тбоди / тр (1) / тх (1)
тр (1) дефинише први ред, а тх (1) дефинише прву колону.
Ако је број редова и колона увек константан, рецимо да ће наша ХТМЛ табела увек имати 5 редова и 3 колоне.
for(int numberOfRows=1; numberOfRows<=5; numberOfRows++) { for(int numberOfCol=1; numberOfCol <=3; numberOfCol++) { System.out.println(driver.findElement(By.xpath (“//div(@id='main')/table(1)/tbody/tr (“+numberOfRows+”)/th(“+numberOfCol+”)”))); } }
Осим броја реда и колоне, свака компонента КСПатх-а остаје иста. Дакле, можете поновити користећи „фор лооп“ за сваки ред и колону као што је горе поменуто.
Приступ бр :
Први приступ је најпогоднији за сто који не мења димензије и увек остаје исти. Горе наведени приступ неће бити савршено решење за динамичке промене веб табела.
Узмимо за пример горњу ХТМЛ табелу:
WebElement htmltable=driver.findElement(By.xpath('//*(@id='main')/table(1)/tbody')); List rows=htmltable.findElements(By.tagName('tr')); for(int rnum=0;rnum Корак 1 : Прво набавите целу ХТМЛ табелу и сачувајте је у променљивој „хтмлтабле“ типа веб елемент.
Корак 2 : Набавите све редове са именом ознаке „тр“ и похраните све елементе на листу веб елемената. Сада су сви елементи са ознаком „тр“ ускладиштени на листи „редови“.
3. корак : Прелистајте сваки ред и преузмите листу елемената са ознаком „Тх“. „Редови.гет (0)“ даће први ред и ‘ФиндЕлементс (Би.тагНаме ( „Тх“ )) ' даће листу колона за ред.
4. корак : Понављајте користећи ‘Цолумнс.гетсизе ()’ и сазнајте детаље о свакој ћелији.
Белешка : Горњи приступ ће бити најпогоднији ако се димензије табеле динамички мењају.
Овим је завршена тема о руковању веб табелама у селену. Даље ћемо научити руковање елементом унутар оквира.
# 2) Оквири
У овом одељку ћемо научити о оквирима на веб страници и како их препознати. Такође ћемо сазнати како можемо да радимо са оквиром у програму Селениум ВебДривер.
Многи програмери воле да постављају елементе у оквир. Оквир је попут контејнера у којем се може групирати неколико елемената.
Идентификација оквира:
Различити начини да се зна да ли је елемент присутан у оквиру или не
# 1 . Десни клик на елемент. Проверите да ли је опција „Овај оквир“ доступна. Ако је доступна ова опција оквира, то значи да је елемент унутар оквира.
#два . Погледајте извор странице веб странице и проверите да ли је доступна било која ознака за „ифраме“.
иоутубе то вав цонвертер онлине бесплатно

Верификујте Број оквира на веб страници :
Сви оквири имају назив ознаке као „ифраме“.
Листа фрамеЛист = дривер.финдЕлементс (Би.тагНаме ( 'Ифраме' ));
Систем.оут.принтлн (фрамеЛист.сизе ());
У горњем примеру : фрамеЛист имаће сву листу оквира и фрамеЛист.сизе () даће број оквира.
Руковање елементом унутар оквира:
Ако се елемент налази у оквиру, контрола мора прво да се пребаци на кадар, а затим да почне да делује на елементима.
Корак 1 : За пребацивање унутар оквира:
дривер.свитцхТо (). фраме (1); // прослеђивање броја оквира као параметра.
или
дривер.свитцхТо (). фраме („Име оквира“); // проследи име оквира као параметар.
или
дривер.свитцхТо (). фраме („кпатх оф тхе фраме“);
Корак 2 : Након пребацивања унутар оквира, селен ће моћи да делује на елементе.
дривер.финдЕлемент ( // **************************************);
дривер.финдЕлемент ( // **************************************);
Овде смо научили како се рукује елементом унутар оквира, а затим ћемо размотрити различите начине руковања динамичким елементом.
# 3) Динамички елементи
У овом одељку ћемо научити различите начине руковања динамичким елементима и конструисања генеричког Кспатх-а.
У неколико сценарија, атрибути елемената се динамички мењају. То може бити „ид“, „наме“ итд.
Пример : рецимо да је „ид“ поља за корисничко име „усернаме_123“ и КСПатх ће бити
// * (@ ид = ’корисничко име_123 ′) али када поново отворите страницу, поље „ид“ поља „усернаме“ се можда променило и нова вредност може бити „усернаме_234“.
У овом случају, тест неће успети јер селен није могао да пронађе КСПатх који сте раније прошли јер се ИД поља променио у неку другу вредност.
Постоји много приступа у зависности од врсте проблема:
Тип проблема 1: Ако се део вредности атрибута промени .
Пример : Као у горњем примеру, вредност ид се мења, али мало поља остаје константно.
„Усернаме_123“ је промењено у „усернаме_234“, али „усернаме“ је увек остало константно.
Можете конструисати кпатх као доле:
дривер.финдЕлемент (Би.кпатх ( „// * (садржи (@ ид,’ корисничко име ’))” )). сендКеис ( 'корисничко име' );
возач . финдЕлемент (Би.кпатх ( „// * (почиње са (@ ид,’ корисник ’))“ )). сендКеис ( 'корисничко име' );
'садржи' је јава метода која проверава да ли ид садржи корисничко име подниза.
почиње са() проверава да ли било који атрибут почиње са „корисник“.
Тип проблема 2: Ако се целокупна вредност атрибута динамички мења.
Опет, у овом случају могу постојати различити приступи:
На пример : ако се ид поља „пријава“ динамички мења и не постоји константна вредност која се користи садржи методу.
Решење : Коришћење сендКеис.
Селениум пружа различите АПИ-је за употребу функцијских тастера. На пример тастер таб, тастери ентер, Ф5 итд.
Корак 1 : Унесите лозинку
дривер.финдЕлемент (Би.ид ( 'Лозинка' )). сендКеис („лозинка“));
Корак 2 : Користите кључне функције за навигацију до елемента.
дривер.финдЕлемент (Би.ид ( 'Лозинка' )). сендКеис (Тастери. ЕНТЕР ));
или
дривер.финдЕлемент (Би.ид ( 'Лозинка' )). сендКеис (Тастери. ТАБ ));
како отворити јсон датотеку на Виндовсима
Закључак
Веб табеле, оквири и динамички елементи су суштински део сваког веб пројекта. Увек је пожељно написати ефикасан код за руковање веб табелама и динамичким елементима.
Разумевање конструкције генеричког КСПатх-а што је врло корисно приликом руковања динамичким елементима. У случају кадра, ваша скрипта мора да пребаци оквир и затим оперише на елементу.
Следећи водич # 19 : У следећем водичу за Селениум ћемо научити о врстама изузетака и начину руковања изузецима у јави у скриптама Селениум.
Пошаљите своје упите везане за веб табеле, оквире и руковање динамичким елементима ако их имате.
Препоручено читање
- Како лоцирати елементе у Цхроме и ИЕ прегледачима за изградњу скрипти за селен - Водич за селен # 7
- Коришћење класе Селениум Селецт за руковање падајућим елементима на веб страници - Водич за селениј бр. 13
- Локатори селена: Идентификујте веб-елементе помоћу КСПатх-а у селену (примери)
- Како се користи ЦСС Селецтор за идентификовање веб елемената за скрипте за селен - Водич за селен # 6
- Проверите видљивост веб елемената помоћу различитих типова ВебДривер наредби - Водич за селен # 14
- Водич за краставац селенијум: Интеграција Јава Селениум ВебДривер краставца
- Интеграција селена са ЈМетером
- Руковање иФрамовима помоћу методе Селениум ВебДривер свитцхТо ()