与 cmets 类似,我在创建选择器以定位 start of range 或 end of range 日期字段时没有任何问题。
但是,实际上,由于表单是动态的,因此每次加载页面或引入新字段时,字段的 ID 都会发生变化,因此我不建议使用 ID 来选择字段。
我在页面上稍微涉猎了一下以感受一下,这里有一些我注意到的花絮可能会对你有所帮助。在没有看到您已经尝试过的示例的情况下,这只是对您要达到的目标的猜测。
Ui Explorer 默认生成以下内容
<html app='chrome.exe' title='Mockaroo - Random Data Generator and API Mocking Tool | JSON / C*' />
<webctrl id='dp1546757265980' tag='INPUT' />
- 如果您希望选择器是相对的,请检查您是否在选择器的范围内,或者如果使用绝对选择器,请确保您正确定义了有效的层次结构。
- 确定一个良好的层次结构和一些要使用的属性,这样您就可以指定所需的字段,同时不使用过于模糊或永远不会两次相同的属性或值
我注意到开始日期和结束日期字段的第一件事是它们分别具有title 属性start of range 和end of range 值。我认为这将是一个好的开始,对我自己来说,我最终添加了更多属性。
<webctrl tag='INPUT' aaname='start of range' name='*min_date*' parentclass='options' parentid='fields' />
进一步考虑这一点,由于表单的性质,您可能有多个 Date 类型的选项字段,因此我将选择器锚定到 date 名称字段以确保我的目标是正确的选项。
在添加锚点时,我注意到在将名称字段从“性别”更改为“日期”后,HTML 代码没有更新值以反映这一点,因此它仍然具有原始内容
<input placeholder="enter name..." class="column-name form-control" spellcheck="false" type="text" value="gender" name="schema[columns_attributes][4][name]" id="schema_columns_attributes_4_name" uipath_custom_id="1">
因此,我没有在第二次选择/锚定名称字段时产生误导,而是添加了一个 Find Element 活动并创建了一个输出 Ui 元素变量以传递给其他活动。
Sample XAML project