棘手的选择器 casperjs 隐藏 div

Tricky Selector casperjs hidden div

我有一个在我看来非常棘手的表格。每次重新加载时,表单都会更改 div、隐藏字段和 ID。我找不到它如何变化的模式。

这是 class .box.box500 的示例:

    <div class="box box500" style="float:left;display:none;">
<span class="errorText"></span>
<br>
<input id="czoyNToiaWhfYlNEaDg0ZGNkVi00bUxtckxLZ2cuLiI7" type="text" name="czoyNToiaWhfYlNEaDg0ZGNkVi00bUxtckxLZ2cuLiI7" value="">
</div>
<div id="boxFirma" style="display: none;margin-top: 20px;">
<div class="" style="float:left;left;margin-left:10px;display:none;">
<a name="personal"></a>
<div style="overflow:hidden; margin-top: 20px;">
<div class="box box500 " style="display:none;">
<input id="czoyNToiaWhfYlNEaDg0ZGNkUjh3d2tOOFJFd2cuLiI7" type="text" value="" name="czoyNToiaWhfYlNEaDg0ZGNkUjh3d2tOOFJFd2cuLiI7">
<br>
<span class="errorText"></span>
</div>
<div class="box box500 " style="float: left;">
<input id="czoyNToiaWhfYlNEaDg0ZGNlVFpMRjFVWjZicEEuLiI7" type="hidden" value="" name="czoyNToiaWhfYlNEaDg0ZGNlVFpMRjFVWjZicEEuLiI7">
<input id="czoyNToiaVhxemVtUGRZOHluMkNxdE9pWEd1Y1EuLiI7" type="text" value="" name="czoyNToiaVhxemVtUGRZOHluMkNxdE9pWEd1Y1EuLiI7">
<br>
<span class="errorText"></span>
</div>
<div class="box box502 " style="float: left;margin-left: 20px;">
<input id="czoxMzoiaXgtQTNQT3VWVmprLiI7" type="text" value="" name="czoxMzoiaXgtQTNQT3VWVmprLiI7">
<br>
<span class="errorText"></span>
</div>
</div>

有时第一个隐藏的 div 存在,有时不存在。每次重新加载时 id 都会更改。隐藏输入有时是第一个子节点,有时是 second.also div,有时在第一个位置,有时在第二个位置。我真的不知道如何识别输入字段。

是否有可能 select 输入如下:

this.sendKeys('.box.box500:nth-child(2):style="float: left;" > input:nth-child(2):type="text"', 'text');

你能不能使用选择器:

this.sendKeys('div.box.box500 input[type="text"]:not([style*="display: none"])', ...);

我相信这会找到所有特定输入类型="text",而不管页面上的顺序如何。

这是有效的:

this.sendKeys('div.box.box500:not([style*="none"]) input[type="text"]', ...);