Francisco Rodriguez
Francisco Rodriguez

Reputation: 11

Watir-Webdriver Can't access a element with id and class

I am having a trouble trying to access a nested div that has id and class, I don't know why but I only can see his parent. This is the HTML code:

<html xml: lang="en" xmlns="http://www.w3.org/1999/xhtml" webdriver="true">
<head id="ctl00_Head1"></head>
<body onunload="deshabilitaHistoria();" onload="deshabilitaHistoria();">
    <form id="aspnetForm" action="ConsultaReceptor.aspx" method="post">
<div class="aspNetHidden"></div>
<script type="text/javascript">

//<![CDATA[ var theForm = document.forms['aspnetF…

</script>
<script type="text/javascript" src="/WebResource.axd?d=w3hP2KgSK0z5QKKeYrfjOjGIUO1WTymINPb1PJaT2…AjAREgWLQ_9gOp19BJLQL03iwEhxTK_VlYMMLk1&t=635757173565717094"></script>
<script type="text/javascript" src="/ScriptResource.axd?d=JZxa8gqDBBrScXZMeyf5kBYrESwOlB3UypK5wa…sdGfW92qpYAba8RsL1xfZ_4qsx20HZ3gnR8gWNG81&t=ffffffff805766b3"></script>
<script type="text/javascript" src="/ScriptResource.axd?d=Z6KcuJ_OzxT6nvHmSunXcYkoXPPYk2iZ6iqqza…Mhq8K8bd09EWTYt8d-AfoMh3rrp75DWb5vMAI1wb0&t=ffffffff805766b3"></script>
<script type="text/javascript">

//<![CDATA[ var PageMethods = function() { PageMe…

</script>
<div class="aspNetHidden"></div>
<script type="text/javascript">

//<![CDATA[ Sys.WebForms.PageRequestManager._init…

</script>
<div id="cuerpo_principal">
    <div id="encabezado"></div>
    <div id="menucontainer"></div>
        <div id="cuerpo" style="margin-top: 30px">
            <h2 class="subtitle">

            Consultar Facturas Recibidas

            </h2>
            <span></span>
            <br></br>
            <br></br>
                <div id="ctl00_MainContent_PnlConsulta" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_MainContent_BtnBusqueda')">

                    <div id="ctl00_MainContent_UpnlBusqueda"></div>
                        <div id="ctl00_MainContent_UpnlResultados">
                            <div id="ctl00_MainContent_PnlResultados" class="pnlResultados" style="height:auto;display:inline;">
                                <div id="DivContenedor" class="resultados" style="width: 900px; margin-left: 40px; overflow-x: scroll; height: auto; float: left">
                                    <div id="ContenedorDinamico" style="margin-left: 0px;">
                                    <table class="encabezadoresultado"></table>
                                        <div id="DivPaginas" style="height: auto;">
                                            <div id="masivapg0" class="pgActual"></div>

The div that i am trying to access is

div id="masivapg0" class="pgActual"

I am trying to access the element by the following code, however i always get a false result:

print browser.form(id: 'aspnetForm').div(id: 'cuerpo_principal').div(id: 'cuerpo').div(id: 'ctl00_MainContent_PnlConsulta').div(id: 'ctl00_MainContent_UpnlResultados').div(id: 'ctl00_MainContent_PnlResultados').div(id: 'DivContenedor').div(id: 'ContenedorDinamico').div(id: 'DivPaginas').div(id: 'masivapg0').exist?

But if i search for his parent i always get a true response:

print browser.form(id: 'aspnetForm').div(id: 'cuerpo_principal').div(id: 'cuerpo').div(id: 'ctl00_MainContent_PnlConsulta').div(id: 'ctl00_MainContent_UpnlResultados').div(id: 'ctl00_MainContent_PnlResultados').div(id: 'DivContenedor').div(id: 'ContenedorDinamico').div(id: 'DivPaginas').exist?

Any idea of why could this be happening? your help is appreciated!

Upvotes: 1

Views: 231

Answers (1)

boulder_ruby
boulder_ruby

Reputation: 39695

I loaded your html into a file and ran it in watir and, while the browser didn't display anything likely due to the incomplete html code, it didn't have any problem returning true like so:

browser.div(:id => "masivapg0").exists?
#=> true

id tags are supposed to be unique, so you shouldn't have to provide any more selectors than this...

Upvotes: 1

Related Questions