这是一个常规解决方案:
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对象)。
或者,如果您没有jQuery或不想使用它,则可以用以下代码替换上面函数的主体:
return self.driver.execute_script("""var parent = arguments[0];var child = parent.firstChild;var ret = "";while(child) { if (child.nodeType === Node.TEXT_NODE) ret += child.textContent; child = child.nextSibling;}return ret;""", element)我实际上是在测试套件中使用此代码。



