Analizando HTML con xpath o cssSelector?

¿Cómo puedo analizar solo las partes de texto de estos bloques de código? Estoy usando los controladores de cliente Selenium en java.

  • Out of stock in your local West Hills store.
  • o

     
  • Not carried in your local West Hills store.
  • o

     
  • In stock in your local West Hills store.
  • Estoy tratando de analizar la porción de texto en cada una de estas variaciones en el elemento web (es decir: No se lleva, En stock, Fuera de stock). Soy un usuario muy nuevo para el análisis de selenium y html, por lo que es muy difícil para mi ser funcional.

    Estaba pensando que sería algo así.

     WebElement driver = new FirefoxDriver(profile); driver.get(Url); System.out.println(driver.getElement(By.id("STORE_AVAIL").getText()); 

    No estoy seguro de cómo lo haría con cssSelector, pero la gente me dice que es más rápido. ¿Funcionaría esto?

     driver.getElement(By.xpath("//li[@id='NOT_PUT_PREF_STORE']./span[@id='STORE_AVAIL']").getText() 

    Cuando trato de encontrar elementos en la página, siempre construyo mis localizadores por:

    1. id = driver.getElement(By.id("STORE_AVAIL").getText());
    2. css selector = driver.getElement(By.css("span#STORE_AVAIL").getText());
    3. xpath = driver.getElement(By.xpath("//span[@id='STORE_AVAIL']").getText());

    La identificación parece ser la más rápida y fácil, tanto para webdriver como para mí. ID debe ser único en la página.

    CSS toma un poco más de trabajo investigativo de mi parte, pero Webdriver lo maneja bien.

    Por último, xpath a veces es inevitable (a menos que compre una cerveza a los desarrolladores y pida amablemente que cambie la aplicación para poder localizarla más rápido, después de todo, de todos modos, está probando). La localización por Xpath con IE es terriblemente lenta y la escritura de xpaths complejos es un arrastre.

    Xpath también es frágil, un pequeño cambio en el dominio puede inutilizar su xpath. Luego puedes depurar / reescribir tu xpath (es tan divertido como parece).

    Mi sugerencia es usar los complementos Firebug y FirePath para Firefox para ayudarte a crear tus localizadores.

    Cuando ‘Ver el origen de la página’ solo mostrará el origen HTML original. No mostrará los cambios realizados por las llamadas AJAX, que se parecen a cómo la página de Walmart está actualizando esa sección / elemento. Esta pregunta proporciona una mejor explicación.

    Suponiendo que está utilizando Firefox (según el controlador que está usando), puede ir a la página y hacer clic en Ctrl + Mayús + I para abrir la herramienta Inspector. Seleccione el elemento que le interesa. Luego haga clic en el botón [HTML] (en el menú Inspector) para ver la fuente actual.

    Tenga en cuenta que cuando obtenga el elemento utilizando Selenium webdriver, obtendrá el valor actual en lugar del valor original visto en la fuente de la página. Por lo tanto, no tiene que preocuparse por lo que ve en la fuente de la página.

    Estoy probado con el siguiente código html snipet

     
  • Out of stock in your local West Hills store.