【问题标题】:watir is unable to find autopopulated div elementWatir 找不到自动填充的 div 元素
【发布时间】:2020-02-03 23:21:34
【问题描述】:

以下是在文本字段中键入“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)

【问题讨论】:

    标签: html ruby watir


    【解决方案1】:

    这里的问题是,

    b.div(text: "someText") 
    

    将在 selenium 中形成如下的 xpath

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

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

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

    所以去掉字符串前后的空格就可以了。

    【讨论】:

    • 为文本添加了空间,并且每次在搜索框中给出不同的文本...你能在 watir 中给出完美的元素吗
    • 在做 browser.find_element(xpath: "//div[normalize-space(.)='someText']") 时抛出错误:#<:browser:> (NoMethodError)
    • 我不是要你写 selenium 代码。 Watir 自动将您的代码转换为 selenium 代码。你写的watir代码没有任何空间。例如,编写此代码,它会起作用。我删除了空间,所以使用这个。 browser.div(text: "Abernathy and Sons")
    • 解决了 xpath 包含文本的问题...感谢您的宝贵建议
    • 接受答案。我的答案左上角有一个空心的tic,你必须点击它,点击后它的颜色会变成绿色。
    猜你喜欢
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多