Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用Nightwatch(Selenium2)定位元素include“anchor”_Javascript_Html_Css_Selenium Webdriver_Nightwatch.js - Fatal编程技术网

Javascript 无法使用Nightwatch(Selenium2)定位元素include“anchor”

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"

如标题所述,我使用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" 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锚定