Javascript 无法使用Nightwatch(Selenium2)定位元素include“anchor”
如标题所述,我使用Nightwatch进行一些浏览器操作测试。然而,每当我需要在锚点中使用id来定位元素时,总是会发生失败。 例如:Javascript 无法使用Nightwatch(Selenium2)定位元素include“anchor”,javascript,html,css,selenium-webdriver,nightwatch.js,Javascript,Html,Css,Selenium Webdriver,Nightwatch.js,如标题所述,我使用Nightwatch进行一些浏览器操作测试。然而,每当我需要在锚点中使用id来定位元素时,总是会发生失败。 例如: <span class="recaptcha-checkbox goog-inline-block recaptcha-checkbox-unchecked rc-anchor-checkbox" role="checkbox" aria-checked="false" id="recaptcha-anchor" tabindex="0" dir="ltr"
<span class="recaptcha-checkbox goog-inline-block recaptcha-checkbox-unchecked rc-anchor-checkbox" role="checkbox" aria-checked="false" id="recaptcha-anchor" tabindex="0" dir="ltr" aria-labelledby="recaptcha-anchor-label"><div class="recaptcha-checkbox-border" role="presentation"></div><div class="recaptcha-checkbox-borderAnimation" role="presentation"></div><div class="recaptcha-checkbox-spinner" role="presentation"></div><div class="recaptcha-checkbox-spinnerAnimation" role="presentation"></div><div class="recaptcha-checkbox-checkmark" role="presentation"></div></span>
这是我想找到的元素,所以
。单击“重播TCHA锚定”
已使用,但不起作用
另一个例子是:
<a class="jstree-anchor" href="#" tabindex="-1" id="6_anchor"><i class="jstree-icon jstree-checkbox" role="presentation"></i><i class="jstree-icon jstree-themeicon ace-icon fa fa-circle-thin green jstree-themeicon-custom" role="presentation"></i>Test</a>
同样的事情刚刚发生。你的选择器看起来不错,
但在调用之前,请单击检查元素是否存在:
'Your Test' : function (browser) {
browser
.waitForElementPresent('#recaptcha-anchor', 1000)
.click('#recaptcha-anchor')
.end()
;
}
如果您使用旧版本的NightWatch,可能应该使用此函数强制CSS选择器:
browser.useCss().click('#recaptcha-anchor')
我看不到第一个给定代码中的锚标记。 但对于您在评论中给出的代码,我刚刚注意到,您的CSS id以数字开头,根据惯例,id不应以数字开头,这可能是Nightwatch也不处理以数字开头的id的原因,请尝试从id中删除数字,然后尝试单击
所以我猜基本上你想在元素上调用一个程序化的点击,对吗?你能展示另一个点击a元素的nightwatch.js代码吗?此外,您还可以在span、spanrecaptcha锚之前添加—最后,如果您可以控制HTML,我不会将div标记块元素嵌套在其中,这些元素是内联元素。最后,我发现第一个示例是Google recaptcha组件。所以,也许无形是一种属性。然而,另一个组成部分,我仍然不明白为什么夜表永远看不见它。我使用chrome获取css,它为我提供\36\u锚。这是什么意思?是的,我以前试过这种方法。但是组件也无法捕获。好的。。。你能分享你测试用例的全部源代码吗?最后我意识到recaptcha试图做的是阻止robot(比如我的测试用例)进入网站。无论如何,谢谢你的帮助!然而,我仍然有另一个无法理解的测试用例。下面是我的测试用例代码和网站部分的链接。使用此代码。单击\37 278\u锚定