为什么 Selenium 找不到动态添加的 DOM 元素?
我用 jQuery 添加了一个 DOM 元素(一个链接)。我可以在 Firebug 中看到该元素,但由于某种原因 Selenium 找不到它。这是怎么回事?
注意:不涉及 AJAX,因此 DOM 元素几乎立即添加。
==编辑==
这里有一些代码(使用jQuery)将链接附加到文档末尾:
$element = $("<a id="foo" href="#"></a>");
$element.appendTo($("body"));
我正在使用Capybara(带有Selenium)找到链接并单击它,如下所示:
find("#foo").click
我对Capybara没有任何问题或者 Selenium,直到我开始使用 jQuery 将元素添加到 DOM。
I added a DOM element (a link) with jQuery. I can see the element in Firebug, but for some reason Selenium can't find it. What is going on here?
Note: there is no AJAX involved, so the DOM element is added almost immediately.
== EDIT ==
Here's some code (using jQuery) that appends a link to the end of the document:
$element = $("<a id="foo" href="#"></a>");
$element.appendTo($("body"));
I'm using Capybara (with Selenium) to find the link and click it, like so:
find("#foo").click
I was having no problems with Capybara or Selenium until I started adding elements to the DOM with jQuery.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试在测试代码中使用 waitForElementPresent。
Try to use waitForElementPresent in your test code.