2

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 中不可见。

在相关元素的上方和下方有一些隐藏的元素,adiv和 alabel要么意味着永久隐藏,要么会在选择其他单选按钮时激活。它们通过style="display: none"设置为属性而被隐藏。

WebDriver(尤其是仅在 IE 上)会根据附近的其他元素决定可见元素不可见是否有某种原因?

我尝试使用一种解决方法来注入可以使元素可见的 JS,但遇到了两个问题:第一个是我不确定我是否正确消除了 style 属性,另一个是该元素,即使 WebDriver 报告, 实际上没有任何使其隐藏的属性,所以没有什么可以取消的。

我尝试过的另一个解决方法是使用 JS 来执行点击,因为它忽略了可见性。我只是不喜欢它——尤其是因为我的下一步行动是填写一个 WebDriver认为是不可见的文本字段,毫无疑问是出于同样的原因。

这种行为有什么解释吗?还是我应该把它归结为 IE 很奇怪并使用 JS?谢谢。

4

0 回答 0