Estoy usando Selenium en Java para capturar valores del fragmento de código a continuación. Pero está devolviendo un valor nulo.
<div class="selenium" style="max-height: 0px !important; max-width: 0px !important;"> <div class="share metric"> <span id="nsf" class="nsf"> "2.2210636079249215+2.224479431183342+2.2244191794364805+2.2635962763351296+2.289855072463768+2.3309352517985613+2.3216783216783217+2.360018509949098+null+2.042235790730032+0.000006222369997702123+0</span></div>Traté de usar
driver.findElement(By.xpath("//div[@class='share metric']/span[@id='nsf']")).getAttribute("value")y
driver.findElement(By.xpath("//div[@class='share metric']/span[@id='nsf']")).gettext()Su xpath es incorrecto, la etiqueta span no es un elemento secundario de <div class="share metric"> .
¿Por qué usar xpath en absoluto? Localizar el elemento por su id funciona bien.
código:
WebElement nsf = driver.findElement(By.id("nsf")); String text = nsf.getText(); System.out.println(text);producción:
tarting ChromeDriver 101.0.4951.41 (93c720db8323b3ec10d056025ab95c23a31997c9-refs/branch-heads/4951@{#904}) on port 28658 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully. [1655279888.338][WARNING]: This version of ChromeDriver has not been tested with Chrome version 102. Čer 15, 2022 9:58:08 DOP. org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: W3C "2.2210636079249215+2.224479431183342+2.2244191794364805+2.2635962763351296+2.289855072463768+2.3309352517985613+2.3216783216783217+2.360018509949098+null+2.042235790730032+0.000006222369997702123+0