如何从元素中获取文本

时间:2013-10-23 07:38:45

标签: webdriver selenium-webdriver

我正在使用webdriver进行论坛回复测试。在这种情况下,我无法从以下代码中找到并获取回复文本(“我想摇滚!”)。

HTML代码为:

 <div id="user_ack_con0" class="user_ack_con mt15 clear clearfix"> 
 <dl class="clear clearfix"> 
  <dt>
  <a href="http://www.abc/user/1161/"> 
 </a> 
  </dt>
<div> 
 <a href="[this is not a link](http://www.xxx.com/user/1161/)">Jason</a> 
 <span class="total_icon total_icon5"></span>
  :I want rock!
</div> 

我真的不知道如何从这个元素中获取该文本:(任何人都知道,谢谢。

3 个答案:

答案 0 :(得分:0)

这是一般解决方案:

def get_text_excluding_children(driver, element):
    return driver.execute_script("""
    return jQuery(arguments[0]).contents().filter(function() {
        return this.nodeType == Node.TEXT_NODE;
    }).text();
    """, element)

传递给函数的元素可以是从find_element ...()方法获得的元素(即它可以是WebElement对象)。

我实际上是在测试套件中使用此代码。

答案 1 :(得分:0)

该文本在技术上位于div元素内,因此您应该尝试使用xPath上的find方法获取它:

//div[@id="user_ack_con0"]/dl/div 

然后获取文本

答案 2 :(得分:0)

您可以尝试:

driver.findElement(By.cssSelector(“#user_ack_con0> dl> div”))。getText()

或者这个:

$(“#user_ack_con0> dl> div”)。textContent

Jquery get Text

相关问题