WebDriver告诉我某些元素肯定不可见,但只在IE中 - Firefox和Chrome工作正常。代码块涉及单选按钮和其他输入。有些输入确实是隐藏的,但这些并不是我想要与之互动的。我正在尝试选择此单选按钮:
<input type="radio" onclick="onClickBranching()" id="rbOnCompletePres" value="2" name="rbBranchType">
我正在使用定位器的ID,所以基本上是By.cssSelector("input#rbOnCompletePres")
。我可以确认findElement命令在Firefox和IE中都有效,并且我用IE打印出元素的属性以确认它找到了正确的按钮。它肯定找到了正确的按钮,就像它在Firefox中找到的那样。它确信该元素在IE中不可见。
在相关元素的上方和下方有一些隐藏元素,div
和label
要么永久隐藏,要么在选择其他单选按钮时激活。通过将style="display: none"
设置为属性来隐藏它们。
为什么WebDriver(特别是仅在IE上)会根据附近的其他元素判断可见元素是不可见的?
我尝试使用一种解决方法来注入可以使元素可见的JS,但遇到了两个问题:第一个是我不确定我是否正确地删除了style属性,另一个是元素,即使是WebDriver报道,实际上没有任何隐藏它的属性,所以没有什么可以解开的。
我尝试过的另一种解决方法是使用JS来执行点击,因为它忽略了可见性。我只是不喜欢它 - 特别是因为我的下一个动作是填写一个文本字段,WebDriver 也认为它是不可见的,毫无疑问是出于同样的原因。
这种行为有什么解释吗?或者我应该把它归结为IE很奇怪并使用JS?感谢。