我需要使用的元素在页面上,但是Robot Framework找不到它

时间:2019-06-26 15:19:52

标签: robotframework

我正在处理一个带有1个可见文本框的网页。

<div class="col-xs-5 pull-right search-bar">
            <input class="form-control search-box ng-pristine ng-untouched ng-valid" id="searchBox" placeholder="Enter a supplier or a catalog name" ng-model="query" ng-change="search()">
        </div>

当我尝试使用以下方法来显示该元素时:

Wait Until Page Contains Element    xpath=//input[@id="searchBox"]    60

我收到一条错误消息:

Element 'xpath = //input[@id="searchBox"]' did not appear in 1 minute.

我已经使用上面的xpath搜索了element,当我在浏览器中手动搜索时,仅给我1个结果。我也尝试使用div标签搜索它。该元素立即显示在页面上,无需花费时间即可加载。

2 个答案:

答案 0 :(得分:0)

您可以尝试以下格式:

Wait Until Page Contains Element  xpath://input[@id='searchBox']  60

使用语法strategy:value或strategy = value,使用前缀指定显式定位器策略。首选前一种语法,因为后者与Robot Framework的命名参数语法相同,并且可能导致问题。分隔符周围的空格将被忽略,因此id:foo,id:foo和id:foo都是等效的。

答案 1 :(得分:0)

如果您使用的是id,则无需使用xpath,因此

Wait Until Page Contains Element  id=searchBox    60

应该没事。

此外,要访问元素,您需要确保: 1)可见 2)已启用 3)在其上方没有其他元素(如叠加元素)