无法识别输入元素
例如有两个像这样的字段…
<div class="col-xs-10">
<h4>
<a href="#" data-type="text" id="firstName" class="editable editable-click">
Alejandroff
</a>
</h4>
<h4>
<a href="#" data-type="text" id="lastName" class="editable editable-click">
Puchauff
</a>
</h4>
</div>
…这之后点击eg。
<div class="col-xs-10">
<h4>
<a href="#" data-type="text" id="firstName" class="editable editable-click editable-open" style="display: none;">
Alejandroff
</a>
<span class="editable-container editable-inline" style="">
<div>
<div class="editableform-loading" style="display: none;">
</div>
<form class="form-inline editableform" style="">
<div class="control-group">
<div>
<div class="editable-input" style="position: relative;">
<input type="text" class="input-medium" style="padding-right: 24px;">
<span class="editable-clear-x">
</span>
</div>
</div>
<div class="editable-error-block help-block" style="display: none;">
</div>
</div>
</form>
</div>
</span>
</h4>
<h4>
<a href="#" data-type="text" id="lastName" class="editable editable-click" style="display: inline;">
Puchauff
</a>
</h4>
</div>
到目前为止已识别的名称输入元素如
xpath = "//*[@id="userDetails"]/div[1]/div[1]/h4[1]/span/div/form/div/div[1]/div/input
,但我知道这是不正确的,因为它使我的测试脆弱(万一开发人员将)。删除一个div测试将失败)。
谁能建议如何识别输入的另一种方式?
Try
"//a[@id='firstName']//following::input[@class='input-medium']"
我没有看到您提供的标记上定义了userDetails
,但是您需要一些独特的东西来依赖。假设你想要这样的输入:
<div class="editable-input" style="position: relative;">
<input type="text" class="input-medium" style="padding-right: 24px;">
<span class="editable-clear-x"/>
</div>
</div>
可以使用id="firstName"
标识符。所以可以输入
//div[@id="firstName"]//..//input[@class="input-medium"]