Cucumber 找不到页面 ID - Ruby、Capybara、Selenium

Cucumber won't find page ID - Ruby, Capybara, Selenium

我在这里遇到了困难。我试图让 Cucumber 在页面上找到这个元素 ID。首先确认它存在,其次点击它。

<a id="ga_Vehicle alerts_Vehicle tax: Expired" href="/vehicles/fleetRecords?dol.expired=true&amp;filter=expired" class="alert-3-row" title="Vehicles with expired tax"></a>.

ID 似乎嵌入到超链接中。

当我尝试时

Then /^I can verify that expired hyperlink is present within the alert$/ do
find_by_id "a_Vehicle alerts_Vehicle tax: Expired"
end

找不到该元素。

我哪里错了?

干杯

根据您的 HTML 代码段,href 属性的值为 id="ga_Vehicle alerts_Vehicle tax: Expired"。您的定位器略有不同:"a_Vehicle alerts_Vehicle tax: Expired".

您的 ID 中不能有空格。来自这里:http://www.w3.org/TR/REC-html40/types.html#h-6.2

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

空格不是 ID 中的有效字符,会彻底混淆任何 dom 解析器、jquery、CSS、selenium 等。您应该从 ID 中删除空格,并且如果您确实需要 ID 中的那么多信息,请将它们替换为下划线。如果您使用 ID 来存储有关 HTML 节点的元数据,我建议您不要这样做。

您可能想要的是将 a_Vehicle 和 alerts_Vehicle 之类的内容添加为 类。