Page Object Model
Para o presente projeto optou-se por utilizar o Page Object Model.
O Page Object Model (POM) foi inicialmente descrito por Martin Fowler sob o nome Windown Driver. No entanto, o termo Page Object foi popularizado pelo framework de testes web Selenium, e desde então se tornou o nome geralmente utilizado.
O POM é um design pattern que encapsula a interface de uma página web em uma classe orientada a objetos, permitindo que os testes interajam com a página através de métodos específicos, em vez de manipular diretamente os elementos HTML. Isso ajuda a reduzir a duplicação de código e facilita a manutenção dos testes quando a interface do usuário muda.
| If you have WebDriver APIs in your test methods, you're doing it wrong.
Simon Stewart PageObject
Assistindo aos vídeos Page Object Model In Selenium WebDriver | Introduction ( vídeo curto, de 11', de uma indiana) que dá uma introdução teórica sobre o POM e continua com Page ObjectModel In Selenium WebDriver using By Locator, ficou claro que é possível criar o POM de duas maneiras distintas:
- By Locator
- By PageFactory Class
POM em python¶
No vídeo What Is Page Object Model? | pytest Framework Tutorial | Part-IX | LambdaTest há um exemplo muito interessante desse design pattern. O exemplo está tb disponível no repositório PytestTutorials.
Dunossauro¶
Além disso tem o material do Eduardo Mendes, que é excelente.
- Selenium com Python #12 - Padrão Page Object e Selenium com Python #13 - Padrão Page object p.II
- dunossauro/curso-python-selenium
- Selenium com Python #13 - Padrão Page object p.II
Outras Referência¶
- 6 | Page Object Model | Selenium Python
- Boost Your Web Scraping Efficiency: Learn How to Clear Cache in Python Selenium
- gunesmes/page-object-python-selenium é um repo com um modelo de PageObjectModel
- Measure and Optimize Page Load Time With Selenium
Outros Projetos¶
Existem outros projetos para raspar dados dos Tribunais.
- Há um pacote de R chamado jjesusfilho/tjsp, do José de Jesus Filho, que obtém dados do TJSP para fazer estudos de jurimetria.
- O projeto courtsbr/esaj, também em R, por exemplo faz o download das páginas do e-SAJ em formato .html. Não serve para meu propósito, mas pareceu interessante.
Há outros projetos disponíveis no GitHub contendo " e-SAJ".