无法定位元素包括"锚定"使用守夜人(Selenium2)

时间:2015-04-16 11:08:53

标签: 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" 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>

这是我想要找到的元素,所以

  

。点击( “#验证码锚定”)   使用,但这不起作用。

另一个例子是:

<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>

刚刚发生了同样的事情。

2 个答案:

答案 0 :(得分:0)

你的选择器好看, 但在调用之前,请单击检查元素是否存在:

'Your Test' : function (browser) {
    browser
        .waitForElementPresent('#recaptcha-anchor', 1000)
        .click('#recaptcha-anchor')
        .end()
    ;
}

如果您使用旧版本的NightWatch,也许您应该使用此功能来强制使用CSS选择器:

browser.useCss().click('#recaptcha-anchor')

答案 1 :(得分:0)

我无法在第一个给定代码中看到锚标记。 但是对于你在评论中给出的代码,我刚刚注意到,你的CSS id是以数字开头的,根据约定ID不应该以数字开头,可能这是因为Nightwatch也没有处理ID开始编号,尝试从ID中删除号码,然后尝试单击

&#13;
&#13;
<a class="jstree-anchor" href="#" tabindex="-1" id="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>
&#13;
&#13;
&#13;

.click("#anchor")

希望它可以帮到你。