2016-01-11 47 views
2

我正在使用量角器,我试图用它的标签来选择一个表单。量角器:使用标签选择一个表单元素

举个例子吧。我有这种形式与几个输入:

<form> 
    <label for="name">Name</label> 
    <input type="text" id="name"> 
    <label for="address">Address</label> 
    <input type="text" id="address"> 
    <label for="email">Email</label> 
    <input type="text" id="email"> 
</form> 

我的步骤定义应该是这样的:

this.When(/^I fill input identified by label "([^"]*)" with value "([^"]*)"$/, function(labelName, value, callback){   
    ... 
}); 

我需要,因为我用量角器与cucumber.js写这个步骤定义,所以运行测试的人应该能够填写只知道标签的表单,而不用检查html代码来检索类,id或其他属性。

我在github上找到了this question,但我想知道是否有更好的方法来做到这一点。

任何人都可以帮助我解决这个问题吗?我不喜欢问其他开发者的代码片段,但我真的不知道如何继续,我无法找到有关此问题的文档。

重要:我没有使用Angularjs

预先感谢您。

回答

3

您可以通过文本找到label元素,然后拿到following siblinginput元素:

var input = element(by.xpath("//label[. = '" + labelName + "']/following-sibling::input")); 
input.sendKeys(value); 
+0

它确实有帮助,谢谢! ;-) –

相关问题