首页 > 解决方案 > Watir 找不到自动填充的 div 元素

问题描述

以下是在文本字段中键入“Abernathy and Sons”文本以生成自动填充列表后的元素

<div class="col-md-10 col-sm-10"> ==$0
    "Abernathy and Sons "
    <p>
        <i class="fa fa-map-maker"></i>
            " atlanta, GA"
    </p>

我试过元素

{browser.div(text: "Abernathy and Sons ")}

给出错误:

30 秒后超时,等待定位 #/"Abernathy and Sons "/, :tag_name=>"div"}> (Watir::Exception::UnknownObjectException)

标签: htmlrubywatir

解决方案


这里的问题是,

b.div(text: "someText") 

将在 selenium 中按如下方式形成 xpath

driver.find_element(xpath: "//div[normalize-space(.)='someText']")

因此normalize-space(),xpath 中的方法将在删除尾随和前导空格后比较字符串。因此,如果您在字符串之后或之前添加一个空格,则会引发无法找到元素的错误。因此,如果我编写打击代码,那么您将遇到相同的错误。

b.div(text: "someText ") #look at the space after someText.

因此,删除字符串前后的空格它将完美地工作。


推荐阅读