2016-03-07 52 views
0

我试图从HTML表格中提取文本。Selenium Java:Chrome Webdriver通过xpath findElement不返回期望值

我使用硒和铬驱动程序。

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 

这是表的extrat:

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

and

<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),但后者 - 我得到一个空字符串。

我也可以告诉大家,我想对后者的格式follwoing代码:

 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

原因中的元素结构的变化是由设计,我有上没有影响。

你能提醒一下吗?

谢谢。

+0

能否请您向我们展示硒你用来获取第二个字符串的代码?这可能是xpath选择器中的一个问题。正如Shubham Jain在下面提到的,如果你正在寻找一个特定的项目,你最好创建一个基于href的xpath或css选择器。 –

+0

@BreaksSoftware是的,我会在1分钟内更新上面的主要问题。感谢您的时间。 – dushkin

+0

@BreaksSoftware isn; t“&nbsp p;”在这里扮演角色? – dushkin

回答

0

你有没有尝试下面的XPath: -

//a[@class='bluelink'] 

尝试在你的代码如下: -

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

希望它会帮助你:)

+0

谢谢。不起作用,因为该页面包含了这个类的很多元素,而且我只需要特定的元素。 – dushkin

+0

这个URL是静态的在href?fstats.php中?champ = 904 & team = 470 & team2 = 406 & tour = 110 –

+0

如果是,并且此URL也是唯一的,那么我们也可以使用它来定位元素 –