javascript - 守夜人,选择具有相同输入类型的第二个元素

标签 javascript nightwatch.js

我正在使用 javascript 编写测试以在守夜人中执行。为了注册一个新帐户,我在同一张表格下有两个密码字段。我使用与 input[type=password] 连接的表单 ID 选择它们,然后使用 .setValue() 将一些字符串插入其中。

问题在于区分这两个密码字段。我不想使用 id 或 class 来选择它们,因为我不希望它以这种方式依赖于 css。这是因为测试是针对开发人员不断工作的实时网站,每次 css 名称更改时,如果它依赖于元素的 id 而不是它们的类型,则必须修改测试。我无法控制许多开发人员以及他们更改和不更改的名称。我唯一的选择是尽可能独立于 css 编写我的测试。如果我可以使用它们的类型来选择密码字段,我将只依赖于用于选择密码字段、用户名字段和登录按钮的表单名称。

有什么办法吗?提前致谢。

最佳答案

我不确定您是否可以在不依赖“任何”形式的 CSS 的情况下巧妙地做到这一点。 HTML 是一种 DOM 表示形式,因此您至少必须在该方面进行工作。

但是,您可以脱离使用特定的 ID、属性,而只在 DOM 类元素中工作。

例如,如果您有以下内容:

<form>
    <input>a</input>
    <input>b</input>
</form>

您可以将 "form > input:nth-of-type(2)" 作为您的选择器。 所以它将始终获取 form

的直接子元素下的第二个 input 元素

http://www.w3schools.com/cssref/sel_nth-of-type.asp

然而,这假设结构是锁定的并且并不总是在变化。

希望这对您有所帮助!

关于javascript - 守夜人,选择具有相同输入类型的第二个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30724579/

相关文章:

javascript - 如何使用 .split 防止在引号逗号处拆分?

javascript - 我如何在 Chrome 中模仿 Greasemonkey/Firefox 的 unsafeWindow 功能?

javascript - 尝试理解 browser.elementIdText 命令

javascript - 带索引的 xpath 不能用作选择器

javascript - 这个脚本在 jQuery 中的替代方案?

javascript - 在 Javascript 中编程 OOP - 正确地

javascript - 如何使用 Grunt.js 将消息添加到输出文件?

node.js - 夜巡卡在启动 Selenium 服务器上

javascript - nightwatch 无法通过其 id 选择元素

javascript - 如何在 Nightwatch 中遍历 querySelectorAll 结果