1

我正在写一个测试,有可能无法正确加载所有字段。我正在考虑使用简单的 try/catch,但是当我使用

$("select[formcontrolname=\"idenifier\"]").shouldBe(disabled);

我得到:

Element should be disabled {input[type="text"]}
Element: '<input class="col-md-8 col-sm-12 col-xs-12 with-tooltip ng-untouched ng-pristine ng-invalid" formcontrolname="identifier" placeholder="e.g. "America" type="text"></input>'
Actual value: enabled

这不是标准例外。我怎么能抓住它?

4

2 回答 2

1

您可以捕获从 Selenide 的任何断言中抛出的 AssertionError。

不过,您可能不应该这样做,通常当您的断言没有在某个超时时间内得到满足时,您要么有错误,要么有不正确的断言。

于 2018-07-20T15:10:33.420 回答
0

如果这是一个下拉列表和一个禁用的下拉列表,那么它应该在 DOM 中添加一个属性“禁用”。

<select class='xxxx'>
    <option disabled='disabled'>

如果你有这个,那么你可以很容易地验证被禁用的元素。

如果没有,您可以先检查它是否显示,然后再检查是否被禁用。

$("select[formcontrolname=\"idenifier\"]").shouldBe(Condition.visible).isEnabled();

如果启用了下拉菜单,这应该会返回您。

希望这可以帮助..

于 2018-07-20T11:34:52.137 回答