我正在使用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>
我真的不知道如何从这个元素中获取该文本:(任何人都知道,谢谢。
答案 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