Selenium Java:xpath的Chrome Webdriver findElement不会返回预期值

时间:2016-03-07 11:36:15

标签: selenium xpath selenium-webdriver selenium-chromedriver

我正在尝试从HTML表中提取文本。

我使用Selenium和chrome驱动程序。

sResult = m_chromeWebdriver.findElement(By.xpath("/html/body/table[3]/tbody/tr[2]/td[2]/center/table[3]/tbody/tr[" + i + "]/td[5]/a")).getText(); ///abbr

这是表格的表格:

enter image description here

我在两个表上尝试了代码,其格式已更改:

<a class="bluelink" href="fstats.php?champ=904&amp;team=470&amp;team2=406&amp;tour=110"><abbr title="that this then">1:0 (0:0)</abbr> </a>

enter image description here

<a class="bluelink" href="fstats.php?champ=804&amp;team=435&amp;team2=441&amp;tour=110">1:1</a>

enter image description here

对于第一个,我得到1:0(0:0),但对于后者 - 我得到一个空字符串。

我还可以告诉我在后一种格式上尝试了以下代码:

        List<WebElement> elemRes = elemTable.findElements(By.xpath("tr[" + i + "]/td"));

        for(int x = 0; x < elemRes.size(); x++){

            System.out.println(elemRes.get(x).getText());
        }

其中i是行索引。除了最后一个(X:Y单元格类型)之外,我可以将所有单元格文本打印到控制台。并且循环确实到达了这个单元格,但没有打印任何内容!

enter image description here

元素结构发生变化的原因是设计,我对此没有影响。

你能告诉我吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您是否尝试过以下XPath: -

//a[@class='bluelink']

尝试使用以下代码: -

sResult = m_chromeWebdriver.findElement(By.xpath("//a[@class='bluelink']")).getText();

希望它会对你有所帮助:)。