2013-06-21 83 views
0

我想用硒来访问一个CSS元素的文本。获取CSS元素硒的文本

WebElement test = driver.findElement(By.cssSelector("div.CLFSBTextWithLink")); 
System.out.println(test.getText()); 

这就是我现在正在做的,但输出是空的。

例如,在一个名为“Company”的网站上可能存在链接或文本,当我使用Selenium检查元素的位置时,它说目标是css = div.CLFSBTextWithLink。现在我想能够以某种方式获得“公司”的价值。

+2

你期望的输出?目前还不清楚你想在这里做什么。 –

+0

例如,在一个名为“Company”的网站上可能存在链接或文本,当我使用Selenium检查元素的位置时,它说目标是css = div.CLFSBTextWithLink。现在我想能够以某种方式获得“公司”的价值。 – user2405920

+0

这应该绝对有效。确保页面上只有一个元素与“div.CLFSBTextWithLink”匹配。如果有更多的,你必须改变你的选择器,或者遍历它们。如果您可以向我们展示HTMl的相关部分,我们可能会提出一个正确的选择策略。 –

回答

2

如果你去http://viewer.opencalais.com/和输入类似“有 一个叫鲍勃鲍勃人”,点击提交,那么你的实体 人在看到它的名字鲍勃鲍勃。我试图从根本上得到这个名字“Bob Bob” 。


getText()文档:

得到这个元素

的可见(即不通过CSS隐藏)的innerText但文本最初是隐藏的。您必须首先展开Person元素以使其可见。在这个特殊的“鲍勃鲍勃”的情况下,你可以使用:

driver.findElement(By.id("toggleVisibilityImage1")).click(); 

但始终确保你点击正确的扩展。为了使它更普遍,这选择扩展旁的“人”的范畴:

//input[@class='collapseExpandIcon' and (../text()='Person')] 

,并解释:

SELECT AN <input> ELEMENT 
//input[             ] 
     THAT IS AN EXPANDER 
     @class='collapseExpandIcon' 
            AND ITS PARENT NODE HAS TEXT "Person" 
            and (../text()='Person')