我有这样的事情:
<div id=soandso>
Having a
<img src="cat.gif" alt="Meow">
always helps
</div>
我在查找div元素时没有问题,当我调用 getText()时,我希望收到&#34; 让Meow始终帮助&#34; ,但我得到没有alt( Meow )描述的文本。
我同意这是预期的行为,但这不是我需要的。
如何优化内联替换文字或至少使用内嵌图像获取文本块,以验证图像在文本中的正确位置?
答案 0 :(得分:3)
selenium-webdriver在这两种情况下都是这样的,
我建议....分别提取Div文本和img(alt)文本。如果文本遵循模式,请尝试在显示图像属性之后或之前识别序列。
WebElement Div_elem=Driver.findElement(By.id("soandso"));
String Div_text = Div_elem.getText();
String img_text=Div_elem.findElement(By.tagName("img")).getAttribute("alt");
如果有帮助,会很高兴
答案 1 :(得分:1)
我在这里找到了一个解决方案:How to get text of an element in Selenium WebDriver (via the Python api) without including child element text?
他建议的解决方案:
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
个对象。)