WADIR-如何使用多个标识符定位元素



我的测试试图检查是否显示错误消息或成功消息。

这两条消息的CSS是:

span id="APEX_SUCCESS_MESSAGE" data-template-id="20696621797766286675_S" class="apex-page-success u-hidden"

span id="APEX_ERROR_MESSAGE" data-template-id="20696621797766286675_E" class="apex-page-success u-hidden"

我已经尝试使用id来定位它们(如果browser.span(:id=>"APEX_SCCESS_MESSAGE"(.存在?(但问题是,它只使用id就将错误和成功消息视为一回事。我想我需要使用数据模板id="来定位它们;20696621797766286675_S";但我不知道如何在我的代码中实现它而不出错。

有什么想法吗?消息的CSS

假设每个span都有一个唯一的id,我希望只找到一个元素。我不希望需要第二个标识符。

我想问题在于元素是如何使用的,特别是#exists?的使用。#exists?验证元素是否出现在HTML中。它不会验证元素是否对用户实际可见。

给定标记屏幕截图,看起来这两个元素可能总是包含在HTML中,但是它们通过切换";u隐藏";班我认为您实际想要的是使用#present?,它检查元素是否对用户可见:

if browser.span(:id=> "APEX_SUCCESS_MESSAGE").present?

为了回答您关于使用多个标识符的问题,标识符是Hash。您可以添加其他项目。注意,对于data-*属性,它们需要用下划线代替破折号:

browser.span(id: "APEX_SUCCESS_MESSAGE", data_template_id "20696621797766286675_S")

最新更新