Selenium 内联图像alt属性和getText()

Selenium 内联图像alt属性和getText(),selenium,selenium-webdriver,Selenium,Selenium Webdriver,我得到了这样的东西: <div id=soandso> Having a <img src="cat.gif" alt="Meow"> always helps </div> 有 总是有帮助 我在查找div元素时没有问题,当我调用getText()时,我希望收到“Having a Meow always help”,但是我得到的文本没有alt(Meow)描述 我同意这是预期的行为,但这不是我需要的 如何更好地内联alt文本或至少与内联图像一

我得到了这样的东西:

<div id=soandso>
  Having a 
  <img src="cat.gif" alt="Meow">
  always helps
</div>

有
总是有帮助
我在查找div元素时没有问题,当我调用getText()时,我希望收到“Having a Meow always help”,但是我得到的文本没有alt(Meow)描述

我同意这是预期的行为,但这不是我需要的


如何更好地内联alt文本或至少与内联图像一起获得文本块,以验证图像在文本中的正确位置?

selenium webdriver在这两种情况下都是这样工作的

  • 将“alt”视为图像标记的属性,而不是Div的元素文本
  • 将“始终具有帮助”视为Div元素的内部文本
  • 我建议…分别提取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");
    

    如果selenium webdriver在这两种情况下都能以这种方式工作,我们将非常高兴

  • 将“alt”视为图像标记的属性,而不是Div的元素文本
  • 将“始终具有帮助”视为Div元素的内部文本
  • 我建议…分别提取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");
    
    如果有帮助,我会很高兴的我在这里找到了一个解决方案:

    他建议的解决办法是:

    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_元素…()
    方法获得的东西(即,它可以是
    WebElement
    对象)

    • 基本上建议您使用jQuery来获取div中的文本
    我在这里找到了一个解决方案:

    他建议的解决办法是:

    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_元素…()
    方法获得的东西(即,它可以是
    WebElement
    对象)

    • 基本上建议您使用jQuery来获取div中的文本

    我在这里找到了一个解决方案:-基本上建议您使用jQuery获取div中的文本。这很难看,但应该可以让它工作。如果您添加您的评论作为答案,我会将其标记为sucesfull。谢谢!我在这里找到了一个解决方案:-基本上建议您使用jQuery来获取div中的文本。这很难看,但应该可以让它工作。如果您添加您的评论作为答案,我会将其标记为sucesfull。谢谢!我找不到一种通用的方法,使用正则表达式或类似的方法来猜测图像在文本中的位置。。。。但是,谢谢,这太糟糕了……对不起,我想不出其他任何东西:)我找不到一种通用的方法,用正则表达式或类似的方法来猜测图像在文本中的位置。。。。但是谢谢,这太糟糕了……对不起,我想不出别的了:)