我正在尝试使用selenium来访问css元素的文本。
WebElement test = driver.findElement(By.cssSelector("div.CLFSBTextWithLink"));
System.out.println(test.getText());
这就是我现在所做的,但输出是空的。
例如,在名为“Company”的网站上可能存在链接或文本,当我使用Selenium检查元素的位置时,它表示目标是css = div.CLFSBTextWithLink。现在我希望能够以某种方式获得“公司”的价值。
答案 0 :(得分:2)
如果你转到
http://viewer.opencalais.com/
并输入类似“有的话” 一个名叫Bob Bob的男人“并点击提交,然后你看到实体下 人名鲍勃鲍勃。我想把这个名字叫做“Bob Bob” 基本上
来自getText()
文档:
获取此元素的可见(即未被CSS隐藏)innerText
但文本最初是隐藏的。您必须首先展开Person元素以使其可见。在这个特殊的“Bob Bob”案例中,您可以使用:
driver.findElement(By.id("toggleVisibilityImage1")).click();
但总是要确保你点击了正确的扩展器。为了使它更通用,这将选择“Person”类别旁边的扩展器:
//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')