User Tools

Site Tools


informatica:linux:selenium

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
informatica:linux:selenium [2019/09/24 07:20] – [Python firefox headless local] javiinformatica:linux:selenium [2019/10/17 12:14] jose
Line 316: Line 316:
 o.click() o.click()
 </code> </code>
 +
 +
 +====== Padres e hijos ======
 +Tenemos el siguiente código:
 +<code>
 +<div class="floatingWindowDiv" style="position: absolute; z-index: 1001; width: 222px; visibility: visible; top: 444px; display: block; left: 678px;">
 +  <div style="display: block; z-index: 400; position: static; width: 222px; left: 0px; top: 0px;" tabindex="-1">
 +    <div style="display: none;" class="masterMenu DropDownLoading">
 +      <span>Please Wait</span></div>
 +      <div class="masterMenu DropDownValueList" tabindex="-1" style="display: block; height: 150px;" loadingcompleted="true">
 +        <div tabindex="-1" class="masterMenuItem promptMenuOption" title="(All Column Values)" style="">
 +          <div class="promptDropdownNoBorderDiv">
 +            <input name="saw_263580_c_1" class="checkboxRadioButton" value="*)nqgtac(*" id="saw_263580_c_1_ck0" aria-labelledby="saw_263580_c_1_ck0_cblabel" tabindex="-1" style="" type="checkbox">
 +            <label class="checkboxRadioButtonLabel" for="saw_263580_c_1_ck0" id="saw_263580_c_1_ck0_cblabel">(All Column Values)</label>
 +          </div>
 +        </div>
 +        <div tabindex="-1" class="masterMenuItem promptMenuOption" title="NULL">
 +          <div class="promptDropdownNoBorderDiv">
 +            <input name="saw_263580_c_1" class="checkboxRadioButton" value="*)nqgtn(*" id="saw_263580_c_1_ck1" aria-labelledby="saw_263580_c_1_ck1_cblabel" tabindex="-1" type="checkbox">
 +            <label class="checkboxRadioButtonLabel" for="saw_263580_c_1_ck1" id="saw_263580_c_1_ck1_cblabel" style="">NULL</label>
 +          </div>
 +        </div>
 +        <div tabindex="-1" class="masterMenuItem promptMenuOption" title="AMA DE CASA">
 +          <div class="promptDropdownNoBorderDiv">
 +            <input name="saw_263580_c_1" class="checkboxRadioButton" value="AMA DE CASA" id="saw_263580_c_1_ck2" aria-labelledby="saw_263580_c_1_ck2_cblabel" tabindex="-1" style="" type="checkbox">
 +            <label class="checkboxRadioButtonLabel" for="saw_263580_c_1_ck2" id="saw_263580_c_1_ck2_cblabel">AMA DE CASA</label>
 +          </div>
 +        </div>
 +        <div tabindex="-1" class="masterMenuItem promptMenuOption" title="AUTONOMO CUENTA">
 +          <div class="promptDropdownNoBorderDiv">
 +            <input name="saw_263580_c_1" class="checkboxRadioButton" value="AUTONOMO CUENTA" id="saw_263580_c_1_ck3" aria-labelledby="saw_263580_c_1_ck3_cblabel" tabindex="-1" style="" type="checkbox">
 +            <label class="checkboxRadioButtonLabel" for="saw_263580_c_1_ck3" id="saw_263580_c_1_ck3_cblabel">AUTONOMO CUENTA</label>
 +          </div>
 +        </div>
 +      </div>
 +   </div>
 +</div>
 +</code>
 +{{:informatica:linux:padres_hijos.png|}}
 +
 +Queremos hacer click en el checkbox, que es un campo input (la caja verde), pero es dinámico y no tiene el identificador. El indentificador está dentro del div que tiene el texto en title que es la caja padre en rojo
 +{{:informatica:linux:padres_hijos2.png|}}
 +
 +Primero seleccionamos el bloque padre, buscando por div y title que queramos:
 +<code>
 +menu_click='NULL'
 +menu_click='AMA DE CASA'
 +menu_click='CUENTA AJENA FIJO'
 +
 +xpath='//div[@title="' + menu_click + '"]'
 +padre = driver.find_element_by_xpath(xpath)
 +</code>
 +Ahora dentro de esa caja, selecctionamos el input para hacer click
 +<code>
 +xpath2='.//input[@type="checkbox"]'
 +hijo = padre.find_element_by_xpath(xpath2)
 +hijo.click()
 +</code>
 +
 +Si a partir de un elemento queremos seleccionar el padre:\\
 +Seleccionamos el elemento:
 +  xpath='//label[text()="AMA DE CASA"]'
 +  obj = driver.find_element_by_xpath(xpath)
 +Y a partir de ese elemento el padre:
 +  padre=obj.find_element_by_xpath("./..")
 +
 +
 +
 +
informatica/linux/selenium.txt · Last modified: 2022/12/27 09:08 by jose