第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Java 中使用 Selenium Webdriver 獲取標(biāo)簽值

如何在 Java 中使用 Selenium Webdriver 獲取標(biāo)簽值

森林海 2022-06-08 16:42:54
我嘗試使用此代碼進(jìn)行實驗。我試圖建立一個系統(tǒng)來從網(wǎng)站獲取數(shù)據(jù)并使用拉格朗日插值方法來創(chuàng)建多項式。我正在用 Java 研究 Selenium 來做到這一點??纯次议_發(fā)了什么。package com.gustavo.seleniumTest;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;public class seleniumTest {public static void main(String[] args) {    System.setProperty("webdriver.gecko.driver", "/home/gustavo/geckodriver");    WebDriver driver = new FirefoxDriver();    String valor;    driver.get("http://cotacoes.economia.uol.com.br/acao/cotacoes-historicas.html?codigo=PETR4.SA&size=200&page=1&period=");    valor = driver.findElement(By.xpath(".//*[@class='odd']")).getText();    System.out.println(valor);}注意:我使用的是 linux 和 Firefox。
查看完整描述

2 回答

?
子衿沉夜

TA貢獻(xiàn)1828條經(jīng)驗 獲得超3個贊

您需要修改定位器,如果要獲取所有元素,則需要使用driver.findElements()方法。


試試下面的 XPath 定位器,它將識別表的行數(shù):


String xPath = "//table[@id='tblInterday']/tbody//tr";

你可以像這樣得到行的大小:


int rows = driver.findElements(By.xpath(xPath)).size();

您可以使用循環(huán)遍歷整行,例如for如下循環(huán):


for(int i=1;i<rows;i++) {


}

下面的 XPath 將根據(jù)行索引號標(biāo)識每行中的列數(shù):


String xPath = "//table[@id='tblInterday']/tbody//tr[row index number]/td";

由于行數(shù)很多,您可以將行索引傳遞給上面的 XPath,如下所示:


for(int i=1;i<rows;i++) {

    driver.findElements(By.xpath(xPath+"["+i+"]/td"));

}

當(dāng)我們使用driver.findElements()上面的方法時,它將保存所有列元素,我們可以循環(huán)并打印每個元素,如下所示:


for(WebElement element : driver.findElements(By.xpath(xPath+"["+i+"]/td"))) {

    System.out.print(element.getText()+"\t");

}

代替


driver.findElements(By.xpath(xPath+"["+i+"]/td")).forEach(e -> System.out.print(e.getText()+"\t"));


for(WebElement element : driver.findElements(By.xpath(xPath+"["+i+"]/td"))) {

        System.out.print(element.getText()+"\t");

    }

如果要正常打印。


下面是使用 Java 8 的整個代碼:


import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;


public class SeleniumTest {


    public static void main(String[] args) {

        System.setProperty("webdriver.chrome.driver", "C:\\NotBackedUp\\chromedriver.exe");

        WebDriver driver = new ChromeDriver();


        driver.get("http://cotacoes.economia.uol.com.br/acao/cotacoes-historicas.html?codigo=PETR4.SA&size=200&page=1&period=");

        String xPath = "//table[@id='tblInterday']/tbody//tr";

        int rows = driver.findElements(By.xpath(xPath)).size();

        for(int i=1;i<rows;i++) {

            driver.findElements(By.xpath(xPath+"["+i+"]/td")).forEach(e -> System.out.print(e.getText()+"\t"));

            System.out.println();

        }

    }

}

我希望它有幫助...


查看完整回答
反對 回復(fù) 2022-06-08
?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗 獲得超5個贊

在 DOM 中發(fā)布元素(標(biāo)簽之間的全部內(nèi)容)。

如果它是標(biāo)簽內(nèi)的文本,您的代碼將起作用,但如果文本位于 value 參數(shù)內(nèi),則需要 getProperty("value") 才能從元素中提取它。


查看完整回答
反對 回復(fù) 2022-06-08
  • 2 回答
  • 0 關(guān)注
  • 413 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號