2013-07-05 85 views
-1

我有一个关于Java中的Selenium WebDriver .getText()函数的问题。 我试图访问一些文本没有任何积极的结果。甚至不在WebElement对象中。我想获取的文字是:“电子邮件通讯 - ”selenium webdriver getText()

从那里我取这样做的HTML代码如下所示:

<a class="footer" href="/contact/email-sign-up/" onclick="aloneTracking('footerEmailSignUp')">eNewsletter Sign Up</a> 

和Java代码如下所示:

List<WebElement> idElemList = driver.findElements(By.className("footer")); 

    System.out.println(idElemList.size()); 
    String str = ""; 
    if (idElemList.size() > 0) { 
     WebElement firstElement = idElemList.get(0); 
     str = firstElement.toString(); 
     System.out.println("**** : " + str); 
     str = firstElement.getText(); 
     System.out.println("¨¨" + str); 
    } 

我第一个System.out.println()我得到的列表是9个元素。

在第二:

<a onclick="aloneTracking('footerEmailSignUp')" href="/contact/email-sign-up/" class="footer"> 

第三:

<a onclick="aloneTracking('footerEmailSignUp')" href="/contact/email-sign-up/" class="footer"> 

我真的不知道如何获取的文字!任何知道的人?

+0

你得到9个元素的列表,但此时你只是想'的getText()'在第一个。你确定这是正确的元素吗?你试过其他8个吗? –

+0

实际上,我需要获得所有9个元素,并且对其余元素也有同样的问题。 我只是把第一个元素作为例子。我真的不明白为什么我无法获得该文本。如果我在同一个网站的另一个网页上使用相同的模板运行相同的代码,它就可以工作。 我觉得很奇怪,如果我不做element.toString(),那么文本就会显示出来。 – sueco

回答

0

更简单的解决办法是找到链接文本的元素,并调用gettext的该元素的

By.ByLinkText By.ByPartialLinkText

+0

我试图通过By.linkText找到元素,但它不起作用。 这就像文本不存在。 – sueco

+0

任何人都知道,请帮忙? 我仍然面临这个问题 – sueco

0

在第二和第三个是字符串str后的值这样做的: 第二内容:System.out.println的

firstElement = idElemList.get(0); 
str = firstElement.toString(); 
System.out.println("xxxx : " + str); 

结果:

xxxx : <a onclick="aloneTracking('footerEmailSignUp')" href="/contact/email-sign-up/" class="footer"> 

第三:

WebElement firstElement = idElemList.get(0); 
str = firstElement.getText(); 
System.out.println("¨¨ : " + str); 

的System.out.println的结果:

¨¨ : <a onclick="aloneTracking('footerEmailSignUp')" href="/contact/email-sign-up/" class="footer">