【发布时间】:2016-10-23 06:54:14
【问题描述】:
我正在尝试使用 disabled="disabled" 属性获取一个复选框:
List<WebElement> checkBox= driver.findElements(By.xpath("xpath"));
其中“xPath”是以下之一:
(.//*[contains(@class,'wfm-statusbar')])[1]/descendant::input
(.//*[contains(@class,'wfm-statusbar')])[1]/descendant::*[@type='checkbox']
(.//*[contains(@class,'wfm-statusbar')])[1]/descendant::*[@disabled='disabled']
在 FirePath 和 Console 中检查时,所有上述工作。示例证明:
但是,当我在代码中运行 xPath 时,它会失败:
org.openqa.selenium.TimeoutException: Timed out after 15 seconds waiting for ...
如果我搜索“正常”复选框(没有 disabled 属性并且在同一页面上),代码可以工作。所以我很确定应该归咎于这个disabled="disabled" 属性。
简化的 HTML:
<div class="wfm-statusbar">
<div>
<span> some text</span>
<span>
<label>
<input type="checkbox" disabled="disabled" >
</label>
</span>
</div>
</div>
有什么建议吗? 谢谢。
【问题讨论】:
-
请解释“它失败了”!
-
已编辑(添加例外)
-
您尝试过更长的等待时间吗?
-
@SiKing - 我没有,因为我发现 15 秒是找到元素的充足时间。除了这种情况外,所有其他元素都会立即找到。感谢您的建议。
-
您将不得不发布更多信息! “禁用”表明该元素是......禁用。 Selenium 通常不允许与禁用的元素交互。你想点击它吗?您是否以某种方式强制启用它?
标签: selenium xpath checkbox selenium-webdriver webdriver