如何获取硒中所示的表数据

时间:2018-08-13 17:05:12

标签: java selenium selenium-webdriver automation qa

公共静态void main(String [] args)引发IOException {

System.setProperty("src/driver/chromedriver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.premierleague.com/tables");

WebElement table;

table = driver.findElement(By.xpath("//*[@id=\"mainContent\"]/div/div[1]/div[3]/div/div"));
String dataoutput;
dataoutput = table.getText();
System.out.println(dataoutput);

输出

此表显示了英超联赛球队 位置 俱乐部 玩过 韩元 画 丢失 GF GA GD 点数 下一步 1个 利物浦1 1 0 0 4 0 +4 3 W 水晶皇宫 2 切尔西1 1 0 0 3 0 +3 3 W 兵工厂 3 伯恩茅斯1 1 0 0 2 0 +2 3 W 西汉姆联 4 水晶宫1 1 0 0 2 0 +2 3 W 利物浦 5 曼彻斯特城1 1 0 0 2 0 +2 3 W 哈德斯菲尔德镇 6 沃特福德1 1 0 0 2 0 +2 3 W 伯恩利 7 曼联1 1 0 0 2 1 +1 3 W 布莱顿和霍夫·阿尔比恩 8 托特纳姆热刺1 1 0 0 2 1 +1 3 W 富勒姆 9 埃弗顿1 0 1 0 2 2 0 1 D 南安普敦 10 沃尔夫汉普顿流浪者1 0 1 0 2 2 0 1 D 莱斯特城 11 伯恩利1 0 1 0 0 0 0 1 D 沃特福德 12 南安普敦1 0 1 0 0 0 0 1 1 D 埃弗顿 13 莱斯特城1 0 0 1 1 2 -1 0 L 沃尔夫汉普顿流浪者 14 纽卡斯尔联1 0 0 1 1 2 -1 0 L 加的夫市 15 阿森纳1 0 0 1 0 2 -2 0 L 切尔西 16 布莱顿和霍夫·阿尔比恩1 0 0 1 0 2 -2 0 L 曼联 17 加的夫市1 0 0 1 0 2 -2 0 L 纽卡斯尔联 18岁 富勒姆1 0 0 1 0 2 -2 0 L 托特纳姆热刺足球俱乐部 19 哈德斯菲尔德镇1 0 0 1 0 3 -3 0 L 曼彻斯特城 20 西汉姆联1 0 0 1 0 4 -4 0 L 亚足联伯恩茅斯

我希望它完全显示在网络上[https://i.stack.imgur.com/UmRxn.png]

2 个答案:

答案 0 :(得分:0)

// find the table
WebElement tbl = driver
    .findElement(By.cssSelector("div.mainTableTab.active div.table > table"));

// print out column head
int i=0;
tbl
    .findElements(By.cssSelector("thead > th"))
    .stream()
    .map( item -> item.getText().trim());
    .forEach( s -> System.out.format((i++==2? "%-20s" : "%-8s"), s) );

//print row data
tbl
    .findElements(By.cssSelector("tbody > tr:not(.expandable)"))
    .stream()
    .map(item -> {
        int i=0;

        item.findElements(By.cssSelector("td"))
            .stream()
            .map( td -> td.getText().trim())
            .forEach( s -> System.out.format((i++==2? "%-20s" : "%-8s"), s) );
        });

        System.out.println('');

答案 1 :(得分:0)

代码如下:

List<WebElement> EleRows = driver.findElements(By.xpath("//div[@class='tableContainer']/div/table/tbody/tr[@data-compseason='363']"));
    System.out.println("Number of Rows: "+EleRows.size());
        for(int i=1;i<=EleRows.size()+1;i++) {
             List<WebElement>  Elelist = driver.findElements(By.xpath("//div[@class='tableContainer']/div/table/tbody/tr[@data-compseason='363']["+i+"]/td"));
                 for(WebElement e: Elelist)  {
                 System.out.print(e.getText()+" ");
                }
    }