Тест должен вытаскивать из кода страницы теги iframe.object и embed и проверять вложены ли они в див с определённым классом. Код приложил, в ходе теста он не может даже вытащить тег со страницы, кто может подсказать где моя ошибка? В тестировании недавно, пишу первый тест.
Нужна помощь в тесте на Selenium+JS
#1
Отправлено 22 июля 2021 - 17:57
#2
Отправлено 24 июля 2021 - 13:17
Приложите пример DOM, часть где фрейм и его предки, скриншотик хотя бы.
getElementsByTagName === 'IFRAME'
там же вроде как маленькие буквы ннадо?... ifame не равно IFRAME
#3
Отправлено 24 июля 2021 - 14:49
Приложите пример DOM, часть где фрейм и его предки, скриншотик хотя бы.
getElementsByTagName === 'IFRAME'там же вроде как маленькие буквы ннадо?... ifame не равно IFRAME
Маленькие буквы используются при парсинге XML-файла, для html - большие
Пример типичной веб-страницы. в этом случае тест должен проходить без ошибок т.к. тег обёрнут в <div class="responsive-embed"> :
<ul class="accordion" data-accordion data-multi-expand="true" data-allow-all-closed="true"> <li class="accordion-item" data-accordion-item><a class="accordion-title" href="#" title="Я хочу на семинар">Я хочу на семинар, но директор не выделяет на это денег. И не понимает зачем нужно повышать квалификацию? Что ему сказать?</a> <div class="accordion-content" data-tab-content> <p><b>Ответ:</b><br>Варианты всегда есть. Или попробуйте объяснить, что бухгалтер денег не зарабатывает. Он их считает. И как правило - бухгалтерам принято оплачивать семинары, потому что в их деле так много изменений. Почему же для бухгалтера приемлемо повышать квалификацию на семинарах за счёт фирмы, а для сметчика, который как раз зарабатывает деньги - нет? Разве не стоит сделать так, чтобы приносящий деньги сотрудник имел бы выше квалификацию и приносил бы денег еще больше?</p> </div> </li> </ul> </div> <div class="row column text-center"> <p><br></p> <h3 class="light-text">Как знать, может этот семинар изменит вашу жизнь и карьеру? Что может быть полезнее? Совместите обучение и общение с единомышленниками 😉</h3> <p><br><a class="button main-btn yellow" href="#prices" title="Принять участие">Принять участие</a></p> </div> </section> <section class="dark fotogallery"> <div class="row small-up-3"> <div class="column foto-img"><img src="./i/1.jpg" title="Павел Владимирович Горячкин" alt="Павел Владимирович Горячкин"></div> <div class="column foto-img"><img src="./i/2.jpg" title="Павел Владимирович Горячкин" alt="Павел Владимирович Горячкин"></div> <div class="column foto-img"><img src="./i/3.jpg" title="Павел Владимирович Горячкин" alt="Павел Владимирович Горячкин"></div> <div class="column foto-img"><img src="./i/4.jpg" title="Павел Владимирович Горячкин" alt="Павел Владимирович Горячкин"></div> <div class="column foto-img"><img src="./i/5.jpg" title="Павел Владимирович Горячкин" alt="Павел Владимирович Горячкин"></div> <div class="column foto-img"><img src="./i/6.jpg" title="Павел Владимирович Горячкин" alt="Павел Владимирович Горячкин"></div> </div> <div class="row"> <div class="small-6 column"> <div class="responsive-embed"> <iframe width="560" height="315" src="https://www.youtube.com/embed/a6L3RbErdxY" frameborder="0" allowfullscreen></iframe> </div> </div> <!-- <div class="small-6 column"> <div class="responsive-embed"> <iframe width="560" height="315" src="https://www.youtube.com/embed/aCOSTTfQ8hU" frameborder="0" allowfullscreen></iframe> </div> </div> --> <div class="small-6 column"> <div class="responsive-embed"> <iframe width="560" height="315" src="https://www.youtube.com/embed/SJE-4KK3mEM" frameborder="0" allowfullscreen></iframe> </div> </div> </div>
#4
Отправлено 24 июля 2021 - 21:14
elem.getElementsByTagName === 'IFRAME'
заменить на
elem.getElementsByTagName === 'iframe'
#5
Отправлено 26 июля 2021 - 08:02
elem.getElementsByTagName === 'IFRAME'
заменить на
elem.getElementsByTagName === 'iframe'
Заменил, разницы нет
#6
Отправлено 26 июля 2021 - 11:00
Я не силён в JS, но что делают эти 2 строки (66-67), а точнее 66?:
document elem.getElementsByTagName === 'IFRAME'
#7
Отправлено 27 июля 2021 - 16:19
Я не силён в JS, но что делают эти 2 строки (66-67), а точнее 66?:
document elem.getElementsByTagName === 'IFRAME'
https://developer.mo...ementsByTagName
#8
Отправлено 27 июля 2021 - 18:27
Я спросил про 66 строку.
#9
Отправлено 27 июля 2021 - 18:50
Должно выглядеть так,видимо файл с черновиком перепутал. Сама команда document служит точкой входа для получения содержимого веб-страницы
document .querySelectorAll('body *:not(script):not(style):not(noscript):not(svg):not(path):not(option)') .forEach(function(elem) { if (result.frame === false){ result.frame = checkElementFrame(elem); } if (result.object === false){ result.object = checkElementObject(elem); } if (result.embed === false){ result.embed = checkElementEmbed(elem); } if (result.frame === true && result.object === true && result.embed === true ){ return result; } });
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных