如何键入动态生成的文本框

时间:2018-12-23 00:43:56

标签: uipath

我正在尝试将数据输入到动态生成的文本框中,但是出现以下错误:

  

找不到与此选择器相对应的UI元素:<webctrl id='dp1545483054838' tag='INPUT' />

重现此问题的步骤:

  1. 转到www.mockaroo.com
  2. 重命名日期性别
  3. 在“类型”下单击“性别”,然后在搜索中键入日期,然后选择“日期”

这将显示日期和日期之间的两个字段(动态生成)。我想在这些字段中更改日期。

1 个答案:

答案 0 :(得分:1)

与评论类似,创建用于选择start of rangeend 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' />
  1. 如果您希望选择器是相对的,请检查您是否在选择器的范围内,或者如果使用绝对值,请确保正确定义了有效的层次结构。
  2. 确定一个良好的层次结构和一些要使用的属性,这些属性将使您可以指定所需的字段,而不必使用过于模糊或永远不会相同两次的属性或值

我注意到开始日期和结束日期字段的第一件事是它们分别具有title属性start of rangeend 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 Element变量以传递给其他活动。

Sample XAML project