量角器没有找到元素 - 所有看起来都是正确的

时间:2016-01-09 18:32:28

标签: angularjs selenium protractor angularjs-e2e e2e-testing

量角器没有找到这个元素.....它让我发疯了。有什么想法吗?该元素确实存在...我在开发控制台中验证了它。

<download
  path="api/backup_jobs/errors.csv"
  params="errorsFilter"
  class="header-action">
  Download Filtered CSV
</download>

element(By.css('[path^="api/backup_jobs"]')).getAttribute('path');

element(By.css('download[params["errorsFilter"]')).getAttribute('path');

1 个答案:

答案 0 :(得分:3)

我不认为这个选择器是正确的:

element(By.css('download[params["errorsFilter"]')).getAttribute('path');

你可能意味着:

$("download[params=errorsFilter]").getAttribute('path');

同时检查元素是否在iframe内 - 如果是,则需要在搜索元素之前使用switchTo()切换到框架的上下文:

browser.switchTo().frame("frame_name_or_id");  

并且,如果这是&#34;时间&#34;问题,您可以明确wait for the element to be present

var EC = protractor.ExpectedConditions,
    elm = $("download[params=errorsFilter]");

browser.wait(EC.presenceOf(elm), 5000);  // wait up to 5 seconds

expect(elm.getAttribute('path')).toEqual("api/backup_jobs/errors.csv");