【问题标题】:In Watir-Webdriver I need to automation code for Datepicker在 Watir-Webdriver 我需要为 Datepicker 自动化代码
【发布时间】:2016-08-10 06:03:06
【问题描述】:
2 个日期选择器的图像:
我有 2 个日期选择器,如屏幕截图所示,我需要在 Watir-Webdriver 中自动化。
他们有相同的班级,所以我无法选择 2 日期选择器。
我写的代码是:
("browser.img(:class => "ui-datepicker-trigger").click")
通过这个我可以点击 1 日期选择器,但我如何选择 2 日期选择器?
【问题讨论】:
标签:
ruby
automation
watir-webdriver
irb
【解决方案1】:
您至少可以使用:index 定位器来选择第二个日期选择器。 :index 定位器指定要使用的匹配元素出现的位置。例如,index: 0 选择第一个匹配项(并且是默认值)。 index: 1 选择第二个匹配,等等
要选择第二个日期选择器:
browser.img(:class => "ui-datepicker-trigger", :index => 1).click
:index 定位器的缺点是当添加其他类似元素时它们会意外中断。例如,在指令日期之前添加另一个日期选择器将导致上述代码更新错误的日期选择器。更好的方法是找到特定于交货到期日的日期选择器。
例如,HTML 可能是这样的:
<ul>
<li>
Instruction Date:
<input type="text" id="instruction_date">
<img class="ui-datepicker-trigger">
</li>
<li>
Delivery Due Date:
<input type="text" id="delivery_due_date">
<img class="ui-datepicker-trigger">
</li>
</ul>
在此标记中,查找第二个日期选择器的替代方法是在与交货到期日期字段相同的li 中查找日期选择器。采用这种方法可能对未来的变化更加稳健:
browser.text_field(id: 'delivery_due_date').parent.img(class: 'ui-datepicker-trigger').click