gpt4 book ai didi

javascript - Protractor 链式元素混淆

转载 作者:行者123 更新时间:2023-11-29 19:14:51 24 4
gpt4 key购买 nike

我正在尝试创建一个 Protractor 测试,它使用来自 Cloudinary 的第三方组件。到目前为止,我一直没有成功找到一个元素。

HTML 看起来像这样:

<div class="header" id="cloudinary-navbar">
<ul class="sources clear">
<li class="source local active" data-source="local">
<span class="label" data-text-key="sources.local.title">My files</span>
<span class="icon"></span>
</li>
<li class="source url" data-source="url">
<span class="label" data-text-key="sources.url.title">Web Address</span>
<span class="icon"></span>
</li>
<li class="source camera" data-source="camera">
<span class="label" data-text-key="sources.camera.title">Camera</span>
<span class="icon"></span>
</li>
</ul>
<a class="close" href="#">×</a>
</div>

我试图找到第二个 li 并这样做:

var webLinkButton = element(by.id('cloudinary-navbar')).element(by.css('.url'));

我收到以下错误:

Message:
Failed: No element found using locator: By(css selector, *[id="cloudinary-navbar"])
Stack:
NoSuchElementError: No element found using locator: By(css selector, *[id="cloudinary-navbar"])

这让我感到困惑,因为我没有通过 CSS 搜索 cloudinary-navbar

我应该如何找到这个元素?

最佳答案

No element found using locator: By(css selector, *[id="cloudinary-navbar"])

*[id="your_id"] 是什么 WebDriverJS actually uses执行“按 ID”查找。

在您的情况下,这不应该是相关的,因为定位器本身是正确的并且应该找到该元素。以下是“找不到元素”问题的常见原因:

  • 该元素iframe 中,您需要切换到它:

    browser.switchTo().frame("frame_name_or_id");
  • 您需要等待元素出现,明确:

    var EC = protractor.ExpectedConditions;
    browser.wait(EC.presenceOf(element(by.id('cloudinary-navbar'))), 5000);
  • 元素实际上并不存在,您需要执行额外操作才能使其出现 - 例如打开菜单

关于javascript - Protractor 链式元素混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36157255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com