0

我正在使用 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> 

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

4

3 回答 3

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 对象)。

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

于 2013-10-23T07:43:07.427 回答
0

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

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

然后获取文本

于 2013-10-23T12:20:10.500 回答
0

你可以试试:

driver.findElement(By.cssSelector("#user_ack_con0 > dl > div")).getText()

或这个:

$("#user_ack_con0 > dl > div").textContent

jQuery获取文本

于 2019-04-09T14:04:23.300 回答