Python Obtenga los contenidos de la página web que tienen javascripts - tal vez selenio -- javascript campo con python campo con html campo con selenium camp Relacionados El problema

Python get web page contents that have javascripts - maybe Selenium


0
vote

problema

Español

Necesito analizar los contenidos de la página web. La página tiene javascrips. ¿Puedes consultar de mejor manera de usar Selenium?

si no: La página cuando se carga en el navegador tiene elementos:

  <div class="js-container">    <table class="zebra" style="width: 100%;">         <tbody><tr>             <th>A</th>             <th>B</th>             <th>C</th>         </tr>             <tr>                 <td>A1</td>                 <td>A2</td>                 <td>                     <a href="http://X" style="color: black">T1</a>                 </td>             </tr>             <tr>                 ....             </tr> ....   

Necesito leer una tabla, elemento por elemento. Yo ejecuto, por ejemplo:

myList = myDriver.find_elements_by_class_name("js-container") .

Entonces, ¿cómo obtengo elementos internos del objeto "JS-contenedor"?

El único elemento resultante Mylist tiene es: print (myList[0]) :

  <selenium.webdriver.remote.webelement.WebElement (session="61238", element="{71293}")>   
Original en ingles

I need to analyse web page contents. Page has javascrips. Can you advice on better way than using Selenium?

If not: page when loaded in browser has elements:

<div class="js-container">    <table class="zebra" style="width: 100%;">         <tbody><tr>             <th>A</th>             <th>B</th>             <th>C</th>         </tr>             <tr>                 <td>A1</td>                 <td>A2</td>                 <td>                     <a href="http://X" style="color: black">T1</a>                 </td>             </tr>             <tr>                 ....             </tr> .... 

I need to read a table, element by element. I run for example:

myList = myDriver.find_elements_by_class_name("js-container").

Then how do I get inner elements of "js-container" object?

The only element resulting myList has is: print (myList[0]):

<selenium.webdriver.remote.webelement.WebElement (session="61238", element="{71293}")> 
           

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

Tal vez necesite BeautifulSoUP - Alimentarse a IT SELENIUM DRIVER.PAGE_SOURCE. Es una herramienta de Python y puede construir un árbol basado en la página web. Documento Beautifulsup

 

Maybe you need BeautifulSoup - feeding to it Selenium driver.page_source. It is a python tool and it can build a tree based on the web page. BeautifulSoup document

 
 
     
     
2
 
vote

Selenium puede hacer esto bien.

  tableDescendants = myDriver.find_elements_by_css_selector("table.zebra *") for tableDescendant in tableDescendants     outer = tableDescendant.get_attribute("outerHTML")     inner = tableDescendant.get_attribute("innerHTML")     print outer[:outer.find(inner)]   

Este código agarra todos los descendientes de la etiqueta TABLE7 , elimina todo después del inicio del innerHTML cadena e imprime el resultado. outerHTML contiene el elemento en sí y todos los descendientes y Reduce0 contiene solo los descendientes. Por lo tanto, para obtener solo el HTML del propio elemento, necesitamos eliminar Reduce111111 de Reduce2 .

 

Selenium can do this just fine.

tableDescendants = myDriver.find_elements_by_css_selector("table.zebra *") for tableDescendant in tableDescendants     outer = tableDescendant.get_attribute("outerHTML")     inner = tableDescendant.get_attribute("innerHTML")     print outer[:outer.find(inner)] 

This code grabs all descendants of the TABLE tag, removes everything after the start of the innerHTML string and prints the result. outerHTML contains the element itself and all descendants and innerHTML contains only the descendants. So, to get only the HTML of the element itself, we need to remove innerHTML from outerHTML.

 
 
       
       

Relacionados problema

0  Grid de selenio - Hacer algo en la falla de la prueba  ( Selenium grid do something on test failure ) 
Soy relativamente nuevo en Selenium Grid y tengo problemas con la estabilidad de las pruebas. Por alguna razón, cuando ejecuto mis pruebas a través de la cuad...

0  ¿Cómo uso el selenio para verificar el valor en una fila de formulario?  ( How do i use selenium to verify the value in a form row ) 
Tengo un formulario de entrada de datos basado en HTML que envía datos a un servidor. Antes de la presentación, la fila de Formulario etiquetada 'RecordNumber...

1  Cómo hacer una si esto no se encuentra entonces ... Selenium node.js  ( How to do an if this is not found then selenium node js ) 
Esta podría ser una pregunta tonta, pero ¿cómo puedo hacer una si esto no se encuentra entonces ... en mi caso? ¡Sé que tengo que usar! == Pero no sé cómo man...

0  PY Selenium Unittest- Elemento de clic no inicia sesión  ( Py selenium unittest clicking element does not login ) 
quiere poder probar el inicio de sesión en una prueba funcional con selenio. vers.py: def login_view(request, *args, **kwargs): if request.method == ...

0  Problema ejecutando Selenium-RC  ( Problem running selenium rc ) 
Tengo selenio que corre bajo el control de crucero para probar nuestro sitio una vez al día. El sábado Selenium comenzó a lanzar el error a continuación. No...

0  Los valores de Selenium Dom no se actualizan  ( Selenium dom values are not updated ) 
Estoy viendo un problema en el selenio con IE6 / 8 que me está dando un mal momento. El problema es que las propiedades de la ventana de DOM no se actualizan ...

0  Cómo implementar AbstractwebDriveReventListener en un guión  ( How to implement abstractwebdrivereventlistener in a script ) 
He creado un archivo con el nombre SeleniumTestListener.java y he escrito el siguiente código: @override @AfterMethod(alwaysrun=true) public class UITest...

2  Cómo ejecutar una prueba de selenio grabada (HTML) desde .NET  ( How to run a recorded html selenium test from net ) 
ejecuto las pruebas de selenio con selenio rc desde .NET (C #). En algunos casos, me gustaría mantener la fuente de la caja de prueba como HTML (para poder ...

7  ¿Cómo iniciar FirefoxDriver usando Selenium 3.4.0 usando Maven?  ( How to start firefoxdriver using selenium 3 4 0 using maven ) 
Estoy tratando de usar la última versión 3.4.0 de Selenium en un proyecto Maven. Importé todos los frascos de Selenium usando por debajo de la dependencia: - ...

2  Python / Selenium Stale Element Referencia en el bucle  ( Python selenium stale element reference in for loop ) 
Estoy teniendo problemas en bucle a través de una lista de identificación de la empresa y usándolos en una barra de búsqueda. Mi código funciona bien cuando e...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos