Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Selenium on Angular page
#1
Hi, everybody!

I am doing a bot to automate some activities from a web system.

I need to find and click on some elements inside an Angular page. I tried it in many ways, but I just can't do it. For example by each line:

navegador.find_element_by_xpath("//span[text()='Intimações']")
navegador.find_element_by_xpath(
          "//div[@class='item-inner']//span[@class='title' and contains(., 'Intimações')]").click()
navegador.find_element_by_xpath(
        "/html/body/div[1]/div[4]/div/div[2]/div/div/div[1]/div[1]/div[1]/div/div[1]/h2").click()
navegador.find_element_by_link_text("Intimações").click()
navegador.find_element_by_css_selector(
        ".main-navigation-menu > li:nth-child(2) > a:nth-child(1)").click()
navegador.find_element_by_xpath(
        "//form[@class='ng-class']/a/div/div[2]/span").click()
navegador.find_element_by_xpath(
        "//li[contains(@class, 'ng-class')]/a/div/div[2]/span").click()
clicar = ActionChains.move_to_element(
        '/html/body/div[1]/div[3]/div/nav/ul/li[2]/a/div/div[2]/span')
        clicar.perform()


I will paste all the Angular code page above. I put bold and red color to bounce the part of the code that I need to find.

The exaclty code that I need is:

<li ng-class="{'active open': menu === 'intimacoes'}"> <a href="#/publicacoes">
<div class="item-content">
<div class="item-media"> <i class="ti-announcement" style="width: 9px"></i> </div>
<div class="item-inner"> <span class="title">Intimações</span> </div>
</div>
</a> </li>




<!DOCTYPE html>
<html lang="en">
<!--<![endif]-->
<!-- start: HEAD -->

<head>
<title>Publicações Online</title>
<!--[if IE]>
<meta http-equiv='X-UA-Compatible' content="IE=edge,IE=11,IE=9,IE=8,chrome=1" />
<![endif]-->
<meta charset="utf-8">
<link rel="shortcut icon" href="images/yeoman.png">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,minimum-scale=1,maximum-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="manifest" href="assets/images/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="assets/images/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
<link
href="https://fonts.googleapis.com/css?family=Lato:100,300,400,400italic,600,700|Raleway:100,300,400,500,600,700|Crete+Round:400italic"
rel="stylesheet" type="text/css">
<link rel="stylesheet" href="assets/css/theme.bundle.min.css">
<link rel="stylesheet" href="assets/css/vendors.bundle.css">
<link rel="stylesheet" href="assets/css/plugins.css">
<link rel="stylesheet" href="assets/css/styles.css">
<link rel="stylesheet" href="assets/css/toaster.css">
<link rel="stylesheet" href="assets/css/cartao_custom.css">
<link rel="stylesheet" href="assets/css/glyphicons_pro/glyphicons.min.css">
<link rel="stylesheet" href="assets/css/icomoon/style.min.css">
<link rel="stylesheet" href="assets/css/themes/theme-1.css" id="skin_color">
<!--<link rel="stylesheet" href="assets/js/ui-bootstrap/dist/ui-bootstrap-2.5.4-csp.css">-->
<link rel="stylesheet" href="vendor/angularjs-datetime-picker/angularjs-datetime-picker.css">
<link href="vendor/sweetalert/dist/sweetalert.css" rel="stylesheet" media="screen">
<link href="vendor/toastr/toastr.min.css" rel="stylesheet" media="screen">
<link href="assets/css/angular-sidebarjs.css" rel="stylesheet" media="screen">
<link rel="stylesheet" href="assets/js/multiple-select/multiple-select.css">
</head> <!-- end: HEAD -->

<body ng-app="pol-site-2019" ui-tour="siteTour" style="background:#ffffff">
<div class="loading" ng-if="loading">Loading…</div>
<div id="app">
<div ng-show="!menu" style="position: absolute;width: 100%;height: 100%;background-color: white;z-index:99999999">
</div>
<toaster-container toaster-options="{'time-out': 4000,'close-button': true}"></toaster-container> <!-- sidebar -->
<div ng-show="menu !== 'login' && menu && !suspenso" class="sidebar app-aside" id="sidebar">
<div class="sidebar-container perfect-scrollbar">
<nav>
<ul class="main-navigation-menu" style="margin:0">
<li ng-class="{'active open': menu == 'inicio'}"> <a href="#/dashboard">
<div class="item-content">
<div class="item-media"> <i class="ti-home" style="width: 9px"></i> </div>
<div class="item-inner"> <span class="title">Início</span> </div>
</div>
</a> </li>
<!-- <li ng-class="{'active open': menu == 'exportacaoBradesco'}">
<a href="#/exportacaoBradesco">
<div class="item-content">
<div class="item-media">
<i class="fa fa-list-alt" style="width: 9px;"></i>
</div>
<div class="item-inner">
<span class="title">Bradesco</span>
</div>
</div>
</a>
</li>-->
<li ng-class="{'active open': menu === 'intimacoes'}"> <a href="#/publicacoes">
<div class="item-content">
<div class="item-media"> <i class="ti-announcement" style="width: 9px"></i> </div>
<div class="item-inner"> <span class="title">Intimações</span> </div>
</div>
</a> </li>

<li ng-class="{'active open': menu === 'movimentacoes'}"> <a href="#/movimentacoes">
<div class="item-content">
<div class="item-media"> <i class="ti-reload" style="width: 9px"></i> </div>
<div class="item-inner"> <span class="title">Movimentações</span> </div>
</div>
</a> </li>
<li ng-class="{'active open': menu === 'relatorio'}"> <a href="#/relatorio">
<div class="item-content">
<div class="item-media"> <i style="font-size: 22px;margin-right: -5px;margin-left: -3px"
class="imoon imoon-paste"></i> </div>
<div class="item-inner"> <span class="title">Relátorios</span> </div>
</div>
</a> </li>
<li ng-class="{'active open': menu === 'agenda'}"> <a href="#/agenda">
<div class="item-content">
<div class="item-media"> <i class="glyphicons glyphicons-calendar"></i> </div>
<div class="item-inner"> <span class="title">Agenda</span> </div>
</div>
</a> </li>
<li ng-class="{'active open': menu === 'processos'}"> <a href="#/processos">
<div class="item-content">
<div class="item-media"> <i class="ti-file" style="width: 9px"></i> </div>
<div class="item-inner"> <span class="title">Processos</span> </div>
</div>
</a> </li>
<li ng-class="{'active open': menu === 'clientes'}"> <a href="#/clientes">
<div class="item-content">
<div class="item-media"> <i class="glyphicons glyphicons-group"></i> </div>
<div class="item-inner"> <span class="title">Clientes</span> </div>
</div>
</a> </li>
<li ng-class="{'active open': menu === 'distribuicao'}"> <a href="#/distribuicao">
<div class="item-content">
<div class="item-media"> <i class="ti-stamp" style="width: 9px"></i> </div>
<div class="item-inner"> <span class="title">Distribuição</span> </div>
</div>
</a> </li>
<li ng-class="{'active open': menu === 'higienizacao'}"> <a href="#/higienizacao">
<div class="item-content">
<div class="item-media"> <i class="ti-check" style="width: 9px"></i> </div>
<div class="item-inner"> <span class="title">Enriquecimento de base</span> </div>
</div>
</a> </li>
<li ng-class="{'active open': menu === 'jurisprudencia'}"> <a href="#/jurisprudencia">
<div class="item-content">
<div class="item-media"> <i class="fa fa-gavel"></i> </div>
<div class="item-inner"> <span class="title">Jurisprudência</span> </div>
</div>
</a> </li>
<li ng-class="{'active open': menu === 'calculos'}"> <a href="#/calculos">
<div class="item-content">
<div class="item-media"> <i class="glyphicons glyphicons-calculator"></i> </div>
<div class="item-inner"> <span class="title">Cálculos</span> </div>
</div>
</a> </li>
<li ng-class="{'active open': menu === 'apoioForense'}"> <a href="https://apoioforense.com.br/site/painel"
target="_blank">
<div class="item-content">
<div class="item-media"> <i class="glyphicons glyphicons-book"></i> </div>
<div class="item-inner"> <span class="title">Apoio Forense</span> </div>
</div>
</a> </li>
<li ng-if="admin" ng-class="{'active open': menu === 'comparador'}"> <a href="#/comparador">
<div class="item-content">
<div class="item-media"><i class="ti-eye" style="width: 9px"></i></div>
<div class="item-inner"><span class="title">Comparador de arquivos</span></div>
</div>
</a> </li>
<li ng-class="{'active open': menu === 'gestorPol'}"> <a
href="https://sistema.gestorpol.com.br/cadastro.aspx?planos" target="_blank">
<div class="item-content">
<div class="item-media"> <i class="fa fa-google"></i> </div>
<div class="item-inner"> <span class="title">Gestor Pol</span> </div>
</div>
</a> </li>
<!--<li ng-class="{'active open': menu === 'sair'}">
<a href="#/logout">
<div class="item-content">
<div class="item-media">
<i class="imoon imoon-exit"></i>
</div>
<div class="item-inner" >
<span class="title">Sair</span>
</div>
</div>
</a>
</li>-->
</ul> <!-- end: MAIN NAVIGATION MENU -->
</nav>
</div>
</div> <!-- / sidebar -->
<div class="app-content">
<div class="main-content">
<div ng-include src="'views/top-navbar.html'"></div>
<div id="container" ng-view=""></div>
</div>
</div>
</div>
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="vendor/jquery-ui/jquery-ui.min.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-base64/angular-base64.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
<script src="bower_components/bootstrap/js/tooltip.js"></script>
<script src="bower_components/angular-animate/angular-animate.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/ngstorage/ngStorage.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
<script src="bower_components/angular-touch/angular-touch.js"></script>
<script src="bower_components/angular-file-saver/dist/angular-file-saver.js"></script>
<script src="bower_components/ng-dialog/js/ngDialog.js"></script>
<script src="bower_components/AngularJS-Toaster/toaster.js"></script>
<script src="assets/js/vendors.bundle.min.js"></script>
<script src="vendor/jquery.sparkline/jquery.sparkline.min.js"></script>
<script src="assets/js/main.js"></script>
<script src="vendor/angular-sidebarjs.js"></script>
<script src="bower_components/blob-polyfill/Blob.js"></script>
<script src="bower_components/file-saver.js/FileSaver.js"></script>
<script src="bower_components/angular-file-saver/dist/angular-file-saver.bundle.js"></script>
<script src="bower_components/moment/moment.js"></script>
<script src="vendor/sweetalert/dist/sweetalert.min.js"></script>
<script src="vendor/toastr/toastr.min.js"></script>
<script src="assets/js/ui-notifications.min.js"></script>
<script src="bower_components/angular-i18n/angular-locale_pt-br.js"></script>
<script src="bower_components/angular-modal-service/dst/angular-modal-service.min.js"></script>
<script src="bower_components/angular-file-model/angular-file-model.js"></script>
<script src="assets/js/jquery.maskedinput.js"></script>
<script src="assets/js/jspdf/dist/jspdf.min.js"></script> <!-- ui-bootstrap -->
<!--<script src="assets/js/ui-bootstrap/ui-bootstrap-2.5.4.js"></script>-->
<!--<script src="assets/js/ui-bootstrap/dist/ui-bootstrap-tpls-2.5.4.js"></script>-->
<script src="assets/js/multiple-select/multiple-select.js"></script>
<!--Angular UI Tour-->
<script src="bower_components/cfp-angular-hotkeys/build/hotkeys.js"></script>
<script src="bower_components/hone/hone.js"></script>
<script src="bower_components/tether/dist/js/tether.js"></script>
<script src="bower_components/angular-scroll/angular-scroll.js"></script>
<script src="bower_components/angular-bind-html-compile/angular-bind-html-compile.js"></script>
<script src="bower_components/angular-ui-tour/dist/angular-ui-tour.js"></script> <!-- END OF Angular UI Tour-->
<script src="scripts/config.6c0a5615.js"></script>
<script src="scripts/app.951a7541.js"></script>
<script src="scripts/requestConfig.b28c73c8.js"></script>
<script src="scripts/routes.864df476.js"></script>
<script src="scripts/runConfig.23d6cc65.js"></script>
<script src="scripts/factory/AuthService.03a4f6a1.js"></script>
<script src="scripts/factory/SwalEditService.35b6816d.js"></script>
<script src="scripts/factory/UtilHtmlInjector.e3f48e70.js"></script>
<script src="scripts/factory/AuthInterceptor.3920be03.js"></script>
<script src="scripts/factory/formataData.83e137aa.js"></script>
<script src="scripts/factory/formataValor.328849dc.js"></script>
<script src="scripts/factory/formataHora.5daec01e.js"></script>
<script src="scripts/factory/formataCPF.cf8531c7.js"></script>
<script src="scripts/factory/formataCelular.ba927e10.js"></script>
<script src="scripts/factory/formataCNPJ.792a8ad0.js"></script>
<script src="scripts/factory/formataEmail.d84e078a.js"></script>
<script src="scripts/factory/numeroCartaoCredito.3661b74d.js"></script>
<script src="scripts/factory/validadeCartaoCredito.4e9031ee.js"></script>
<script src="scripts/factory/cvvCartaoCredito.dd01abf7.js"></script>
<script src="scripts/filters/filter.75ae668c.js"></script>
<script src="scripts/filters/truster.c407a37c.js"></script>
<script src="scripts/service/IndexService.4f4048e3.js"></script>
<script src="scripts/service/LoginService.c5ae777a.js"></script>
<script src="scripts/service/ProcessoService.6188d9cc.js"></script>
<script src="scripts/service/PublicacaoService.72306b87.js"></script>
<script src="scripts/service/exportacao/BradescoService.js"></script>
<script src="scripts/service/MovimentacaoService.52c44597.js"></script>
<script src="scripts/service/ClienteService.779a88ea.js"></script>
<script src="scripts/service/AgendaService.3e7c318e.js"></script>
<script src="scripts/service/JurisprudenciaService.139ce5df.js"></script>
<script src="scripts/service/HigienizacaoService.1c3f825b.js"></script>
<script src="scripts/service/CalculosService.408e38af.js"></script>
<script src="scripts/service/AplicativosService.879af630.js"></script>
<script src="scripts/service/AssistenciaService.b12afc5e.js"></script>
<script src="scripts/service/DistribuicaoService.8fa4034a.js"></script>
<script src="scripts/service/ConfiguracaoService.45d3440f.js"></script>
<script src="scripts/service/MinhaContaService.6a10c888.js"></script>
<script src="scripts/service/MensagensSistemaService.503b70af.js"></script>
<script src="scripts/service/RelatoriosService.65cf12e7.js"></script>
<script src="scripts/service/TourFactory.5dd5c7dd.js"></script>
<script src="scripts/service/ContratacaoService.47a27c11.js"></script>
<script src="scripts/service/ImportadorProcessosService.fe8aa2c1.js"></script>
<script src="scripts/service/GerenciarTribunaisAgrupadosService.eb0378e9.js"></script>
<script src="scripts/service/GoogleAgendaService.3be5fdd7.js"></script>
<script src="scripts/service/ServerPaginate.4eb6cd1c.js"></script>
<script src="scripts/service/ServerPaginateProcesso.649dbda6.js"></script>
<script src="scripts/service/ServerPaginateDistribuicao.fb7f2ba2.js"></script>
<script src="scripts/service/ServerPaginateClientes.0527e617.js"></script>
<script src="scripts/service/ServerAcoes.faf55a5d.js"></script>
<script src="scripts/service/ComparadorService.3deb18df.js"></script>
<script src="scripts/controllers/IndexController.d51c4ed9.js"></script>
<script src="scripts/controllers/SuspensaoController.adaca2c4.js"></script>
<script src="scripts/controllers/SugestaoController.9b322b9e.js"></script>
<script src="scripts/controllers/ErrorController.a53ae0c6.js"></script>
<script src="scripts/controllers/LoginController.ec1b2f05.js"></script>
<script src="scripts/controllers/LoginRedirectController.bd229f38.js"></script>
<script src="scripts/controllers/PublicacaoController.50cb5cea.js"></script>
<script src="scripts/controllers/exportacao/BradescoController.js"></script>
<script src="scripts/controllers/MovimentacaoController.7f66dbd1.js"></script>
<script src="scripts/controllers/DistribuicaoController.5b28a462.js"></script>
<script src="scripts/controllers/ProcessoController.6697eea3.js"></script>
<script src="scripts/controllers/ClienteController.7cf50887.js"></script>
<script src="scripts/controllers/AgendaController.98c38904.js"></script>
<script src="scripts/controllers/CalculosController.7a22f4c3.js"></script>
<script src="scripts/controllers/AplicativosController.f5e2b35d.js"></script>
<script src="scripts/controllers/HigienizacaoController.871fb2a0.js"></script>
<script src="scripts/controllers/JurisprudenciaController.5885b744.js"></script>
<script src="scripts/controllers/ConfiguracaoController.f3adc720.js"></script>
<script src="scripts/controllers/MinhaContaController.40a038ec.js"></script>
<script src="scripts/controllers/GoogleAgendaController.2a962676.js"></script>
<script src="scripts/controllers/ContratacaoController.1b67653c.js"></script>
<script src="scripts/controllers/RelatoriosController.8569ede6.js"></script>
<script src="scripts/controllers/LogoutRedirectController.de8e32af.js"></script>
<script src="scripts/controllers/ComparadorController.ed42d1b7.js"></script>
<script src="scripts/controllers/ImportadorProcessosController.3de20395.js"></script>
<script src="scripts/controllers/GerenciarTribunaisAgrupadosController.e00c22c8.js"></script>
<script src="scripts/controllers/modal/ModalContrateController.js"></script>
<script src="scripts/controllers/exportacao/modal/ModalTriagemController.js"></script>
<script src="scripts/controllers/modal/ModalNavegacaoPublicacaoController.js"></script>
<script src="scripts/controllers/modal/ModalNavegacaoMovimentacaoController.js"></script>
<script src="scripts/controllers/modal/ModalNavegacaoJurisprudenciaController.js"></script>
<script src="scripts/controllers/modal/ModalImpressaoPublicacaoController.js"></script>
<script src="scripts/controllers/modal/ModalEventoController.js"></script>
<script src="scripts/controllers/modal/ModalLinhaTempoController.js"></script>
<script src="scripts/controllers/modal/ModalInformacoes.js"></script>
<script src="scripts/controllers/modal/ModalProcessoController.js"></script>
<script src="scripts/controllers/modal/ModalAtivaMovimentacaoProcesso.js"></script>
<script src="scripts/controllers/modal/ModalResponsavelFinanceiroController.js"></script>
<script src="scripts/controllers/modal/ModalDistribuicao.js"></script>
<script src="scripts/controllers/modal/ModalCartaoCreditoController.js"></script>
<script src="scripts/controllers/modal/ModalContratoController.js"></script>
<script src="scripts/controllers/modal/ModalCadastroRapidoClienteController.js"></script>
<script src="scripts/controllers/modal/ModalFicheiroProcesso.js"></script>
<script src="scripts/controllers/modal/ModalAssociaClienteParte.js"></script>
<script src="scripts/controllers/modal/ModalAudiencia.js"></script>
<script src="scripts/controllers/modal/ModalMostraTodosMovimentos.js"></script>
<script src="scripts/controllers/modal/ModalMostraTodasIntimacoes.js"></script>
<script src="scripts/controllers/modal/ModalVisualizarIntimacao.js"></script>
<script src="scripts/controllers/modal/ModalSenhaProcessoEletronico.js"></script>
<script src="scripts/controllers/modal/ModalMensagensIniciais.js"></script>
<script src="scripts/controllers/modal/ModalInstrucaodeUsoController.js"></script>
<script src="scripts/controllers/modal/ModalInstrucaodeInstallController.js"></script>
<script src="scripts/controllers/modal/ModalComparadorDivergencias.js"></script>
<script src="scripts/controllers/modal/ModalAgrupadorTribunal.js"></script>
<script src="vendor/jquery-validation/dist/jquery.validate.min.js"></script> <!-- Chat do Movidesk -->
<script type="text/javascript">
var mdChatClient = "F001B7C98C354BA2AC82EFD5195C0748";
</script>
<script src="https://chat.movidesk.com/Scripts/chat-widget.min.js"></script> <!-- Chat do Movidesk fim -->
<!-- end: JAVASCRIPTS REQUIRED FOR THIS PAGE ONLY -->
<!-- partial:partials/script/_main_script.html -->
<!-- partial -->
<!-- start: JavaScript Event Handlers for this page -->
<!--<script src="assets/js/pages-calendar.js"></script>-->
<script>
jQuery(document).ready(function () {
setTimeout(function () {
Main.init();
UINotifications.init();
}, 100);

});
</script>
</body>

</html>

Thank you for any kind of help!

Regards,
Martinelli
Reply


Messages In This Thread
Selenium on Angular page - by Martinelli - Jul-24-2020, 12:59 AM
RE: Selenium on Angular page - by Martinelli - Jul-24-2020, 01:13 PM
RE: Selenium on Angular page - by snippsat - Jul-24-2020, 02:50 PM
RE: Selenium on Angular page - by Martinelli - Jul-28-2020, 12:40 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Click on a button on web page using Selenium Pavel_47 7 4,681 Jan-05-2023, 04:20 AM
Last Post: ellapurnellrt
  Selenium/Helium loads up a blank web page firaki12345 0 2,043 Mar-23-2021, 11:51 AM
Last Post: firaki12345
  Saving html page and reloading into selenium while developing all xpaths Larz60+ 4 4,172 Feb-04-2021, 07:01 AM
Last Post: jonathanwhite1
  Selenium Parsing (unable to Parse page after loading) oneclick 7 6,003 Oct-30-2020, 08:13 PM
Last Post: tomalex
  Selenium Page Object Model with Python Cryptus 5 3,969 Aug-19-2020, 06:30 AM
Last Post: mlieqo
  use Xpath in Python :: libxml2 for a page-to-page skip-setting apollo 2 3,627 Mar-19-2020, 06:13 PM
Last Post: apollo
  Selenium get data from newly accessed page hoff1022 2 2,938 Oct-09-2019, 06:52 PM
Last Post: hoff1022
  Difficult web page -- Selenium Larz60+ 2 2,640 Dec-31-2018, 06:51 PM
Last Post: Larz60+
  Web Page not opening while web scraping through python selenium sumandas89 4 10,097 Nov-19-2018, 02:47 PM
Last Post: snippsat
  open a web page by selenium !! evilcode1 3 3,329 Aug-01-2018, 03:05 PM
Last Post: snippsat

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020