2017-02-27 39 views
1

我有一个在选择器中选择值时启用的按钮。咏叹调禁用的硒代码

html代码指出,当我在选取器中选取av值时,aria-disabled =“false”。

<button id="form:panel:j_idt188" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only btn btn-primary col-md-12 selectContext7" data-aft="selectLevel7" type="submit" onclick="PrimeFaces.ab({s:"form:panel:j_idt188",u:"form:kontekstvelger"});return false;" name="form:panel:j_idt188" role="button" aria-disabled="false" 

我如何代码,硒脚本应该等待aria-disabled="false"是假的(当我进入页面,我选择的选择器的值之前,它是真实的。

从我面前有这样的代码来等待元素:

WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.id("nyid"))); 

但我怎么可以这样写上面的代码是在等待唱段残疾是假

+0

选中此http://stackoverflow.com/questions/15237129/webdriverwait-for-an-element-attribute-要更改/ 15237960#15237960 – Andersson

回答

1

您可以使用?等待具有特定ID的元素和属性

WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("[id='nyid'][aria-disabled='false']"))); 
+0

我做过但得到消息: org.openqa.selenium.TimeoutException:等待所有条件有效10秒后超时:存在位于以下位置的元素:By.id:nyidvalue为“假”。当前值:“null” –

+0

并在测试重播期间使用萤火虫我得到的值为“true”,我不明白该值如何可以为“null”,meybe之前的步骤并未实际按下选取器(浏览器显示它为虽然) –

+0

@MagnusJensen你需要使用'By.cssSelector',而不是'By.id'。只需从我的答案中复制代码即可。 – Guy

0

试试这个:

(new WebDriverWait(driver, 10)).until(ExpectedConditions.and(
     ExpectedConditions.presenceOfElementLocated(By.id("nyid")), 
     ExpectedConditions.attributeToBe(By.id("nyid"), "aria-disabled", "false"))); 
+0

并且如果上述代码在10秒内超时,则找不到该元素?对? –

相关问题