elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Capturar Valor Ruby Watir Hpricot
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Capturar Valor Ruby Watir Hpricot  (Leído 4,291 veces)
daniel.r.23

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Capturar Valor Ruby Watir Hpricot
« en: 29 Marzo 2013, 06:14 am »

Buenas, tengo problema al capturar catura de una url para obtener un valor, muestro

Código:
require 'watir'
require 'open-uri'
require 'hpricot'

browser = Watir::Browser.start  "file:///C:/Documents%20and%20Settings/Administrador/Escritorio/Page%20Disco/Ip%20%2010.1.23.11%20-%20Servidor%20%20siscom%208080%20-%20_siscomprod_servlet_.htm"

browser.text_field(:id, "W0007_USUCOD").set("DRAMOS")
browser.text_field(:id, "W0007_USUPASS").set("DRAMOS")

browser.link(:text, "Locales").click
browser.link(:text, "Consultas").click
browser.link(:text, "Mov.Stock y Precios").click
browser.text_field(:id, "W0010_PRDCOD").set("500000")
browser.button(:value, "Mostrar Datos").click
browser.link(:text, "ACEITE GIRASOL LEADER PRICE 5LT").click
browser.window(:title => "Datos del artículo").use do
   doc = Hpricot(open(browser.url))
  puts doc.at("input[@name='_TIPOCOMPRA']")['value']

Una ves que se me habre una ventana con el titulo Datos del artículo esta la capturo y le obtengo la url la cual se la paso como parametro con el open al Hpricot para buscar el elemento input con el name = _TIPOCOMPRA y obtener el valor de value. el problema esta en que me salta un error

Código:
C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:35:in `initialize': Invalid argument - file:///C:/Documents%20and%20Settings/Administrador/Escritorio/Page%20Disco/Datos%20del%20articulo.htm (Errno::EINVAL)
from C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:35:in `open'
from C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:35:in `open'
from C:/Documents and Settings/Administrador/Escritorio/iniciativa.rb:19:in `block in <main>'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.6.0/lib/watir-classic/window.rb:67:in `call'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.6.0/lib/watir-classic/window.rb:67:in `use'
from C:/Documents and Settings/Administrador/Escritorio/iniciativa.rb:18:in `<main>'
[Finished in 3.6s with exit code 1]

entiendo que el problema radica en como esta obteniendo la url pero no tengo ni idea de como solucionarlo!!!


En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Capturar Valor Ruby Watir Hpricot
« Respuesta #1 en: 30 Marzo 2013, 22:41 pm »

prueba con esto.

Código
  1. url = URI::encode(browser.url)
  2. doc = Hpricot(open(url))

Si eso no funciona entonces con este otro:

Código
  1. url = CGI::escape(browser.url)
  2. doc = Hpricot(open(url))


En línea

daniel.r.23

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: Capturar Valor Ruby Watir Hpricot
« Respuesta #2 en: 31 Marzo 2013, 06:24 am »

ya esta solucionado el tema es que queria descargar un archivo de esa forma ejecute mi pagina con visual studio para que me la cargar en un localhost y santo remedio.
Ahora una consulta yo tengo una tabla con una estructura similar a esta:

Código:
<table id="GRID1" class="FSGrande" cellspacing="0" border="1">
   <tbody>
      <tr class="FSGrandeOdd">
         <td>
         <td width="150" style="WIDTH: 150px">
         <td width="100" align="right" style="WIDTH: 100px">
         <td width="70" align="right" style="WIDTH: 70px">
         <td width="100" align="right" style="WIDTH: 100px">
         <td width="100" align="right" style="WIDTH: 100px">
         <td width="100" align="right" style="WIDTH: 100px">
      </tr>
      <tr class="FSGrandeEven">
      <tr class="FSGrandeOdd">
      <tr class="FSGrandeEven">
      <tr class="FSGrandeOdd">
      <tr class="FSGrandeEven">
      <tr class="FSGrandeOdd">
      <tr class="FSGrandeEven">
      <tr class="FSGrandeOdd">
      <tr class="FSGrandeEven">
      <tr class="FSGrandeOdd">
   </tbody>
</table>

como con Hpricot puede recorrer cada fila y celda evaluando su contenido???
sabiendo que la cantidad de filas puede variar y las celdad son siempre iguales!!
« Última modificación: 31 Marzo 2013, 06:26 am por daniel.r.23 » En línea

daniel.r.23

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: Capturar Valor Ruby Watir Hpricot
« Respuesta #3 en: 2 Abril 2013, 07:01 am »

Por favor alguien que me pueda explicar un poco mas sobre este tema!!!
logre a partir de unos post llegar a este cód:

Código:
require 'rubygems'
require 'hpricot'
require 'open-uri'

results = []
doc = Hpricot(open('').read)
doc.search('//table[@class="FSGrande"]/tbody/tr/td/input').each { |result|
   results << {result.attributes['value']}
}
results


Se supone que me deberia de desplagar en pantalla los valore del atributo value de cada input pero no lo hace!!, compila y muestra el tiempo de compilacion.

reitero el html que estoy tratando de examinar.

Código:
<table id="GRID1" class="FSGrande" cellspacing="0" border="1">
    <tbody>
        <tr class="FSGrandeOdd">
            <td>
                <input type="hidden" value="01/03/2013" name="STMFECHAMOV_0001">
                <span id="span_STMFECHAMOV_0001" style="background: transparent">01/03/2013</span>
            </td>
            <td width="150" style="width: 150px">..etc..</td>
            <td width="100" align="right" style="width: 100px">..etc..</td>
            <td width="70" align="right" style="width: 70px">..etc..</td>
            <td width="100" align="right" style="width: 100px">..etc..</td>
            <td width="100" align="right" style="width: 100px">..etc..</td>
            <td width="100" align="right" style="width: 100px">..etc..</td>
        </tr>
        <tr class="FSGrandeEven">..etc..</tr>
        <tr class="FSGrandeOdd">..etc..</tr>
        <tr class="FSGrandeEven">..etc..</tr>
        <tr class="FSGrandeOdd">..etc..</tr>
        <tr class="FSGrandeEven">..etc..</tr>
        <tr class="FSGrandeOdd">..etc..</tr>
        <tr class="FSGrandeEven">..etc..</tr>
        <tr class="FSGrandeOdd">..etc..</tr>
        <tr class="FSGrandeEven">..etc..</tr>
        <tr class="FSGrandeOdd">..etc..</tr>
    </tbody>
</table>
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
capturar el valor de un combobox
.NET (C#, VB.NET, ASP)
proteus8 2 7,422 Último mensaje 21 Enero 2011, 22:14 pm
por .::IT::.
capturar valor en un Jtextfield
Java
mapers 5 29,867 Último mensaje 3 Abril 2011, 07:59 am
por mapers
Ayuda problema con valor (RUBY)
Scripting
tbgio 1 2,075 Último mensaje 18 Julio 2011, 02:02 am
por tbgio
capturar valor select en php
PHP
josco 3 9,586 Último mensaje 15 Junio 2012, 02:26 am
por josco
¿saber qué tipo de valor tiene la variable con la que estoy trabajando? Ruby
Scripting
Saito_25 3 6,837 Último mensaje 4 Abril 2015, 22:06 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines