我有2个表单,我正在使用TestStack.Seleno测试。这两个表单都有一个必选的复选框。第一个表单有5个字段(包括复选框)。我可以使用TestStack.Seleno创建一个包含有效数据的通过测试。我将复选框设置如下:
Input.TickCheckbox(f=>f.Accept,form.Accept); 在我的另一个有10个左右字段的表单上,当我试图将复选框设置为勾选(使用相同的代码)时,没有任何反应。然而,当我尝试
var acceptCheckBox = Find.Element(By.Name("Accept"),new TimeSpan(0,0,0,50));
if (form.Accept)
{
acceptCheckBox.Click();
}I get error“元素当前不可见,因此可能无法与之交互”元素是清晰可见的,并且不是使用javascript注入的。
我使用的是github的最新版本的TestStack.Seleno。
有什么想法吗?
发布于 2015-03-09 17:55:21
因此,我设法弄清楚了问题所在,并找到了解决方法,但是我无法解释为什么它适用于另一种形式。强制接受字段包含由mvc生成的html,如下所示
<div>
<input class="check-box" data-val="true" data-val-mustbetrue="The Accept our field is required" data-val-required="The Accept our field is required." id="Accept" name="Accept" type="checkbox" value="true"><input name="Accept" type="hidden" value="false">
<label for="Accept">
Accept our Please accept our <a href="/terms-conditions/" style="text-decoration:underline;" target="_blank">Terms and Conditions</a>
</label>
<span class="field-validation-valid" data-valmsg-for="Accept" data-valmsg-replace="true"></span>
</div>因此,您的复选框和隐藏字段都带有id Accept,我怀疑代码中的seleno正在提取隐藏字段和设置值,因此我更新了我的代码todo
var acceptCheckBox = Find.Element(By.CssSelector("#Accept.check-box"));
acceptCheckBox.Click();现在一切都正常了。
Ismail
https://stackoverflow.com/questions/28902817
复制相似问题