2016-07-28 50 views
2

我遇到了一些麻烦,试图在表单组上使用fill_in文本表单。水豚“fill_in”by xpath?

HTML:

<div class="form-group"> 
    <label class="control-label">First Name</label> 
    <input class="form-control" type="text" data-filter="0"> 
</div> 

我使用FILL_IN通过使用标签文本IE “名”,没有运气尝试;我也尝试过使用“data-filter =”0“”没有运气(我甚至不知道这是什么;它似乎不是任何类型的ID)。

我想也许我可以使用xpath?但你甚至可以在xpath上做一个查找器,然后填写它?我找不到任何似乎认为能够在水豚模块文档中找到的东西。

+1

原因标签文本不工作是因为在标签不依赖于输入任何方式 - 它需要或者有一个'for'属性,其值将是输入的id(如果有的话),或者它需要包装输入以将其绑定到输入 –

回答

1

另一种方法是使用findset

find(:xpath, "//label[text()='First Name']/following-sibling::input").set("text") 

或者:

find(:xpath, "//div[label='First Name']/input").set("text") 
+0

我很困惑以下兄弟姐妹的事情,我从来没有见过在水豚之前? – msmith1114

+1

@ msmith1114这是一个XPath表达式,用于查找元素,然后调用'set'。 –

+0

@ msmith1114,'following-sibling'是XPath的一个轴:https://www.w3.org/TR/xpath/。你也可以使用'/ div [label ='First Name']/input' –