java - Selenium 网络驱动程序 : IE can't find radio buttons nor checkboxes for using click() on them

标签 java html internet-explorer webdriver

我正在为基本注册页面构建一个测试套件(它有大量的文本字段+一些单选按钮和复选框)。我正在使用 Selenium Webdriver 解决方案,测试是用 Java 编写的。虽然测试在 Firefox 和 Chrome 上运行良好,但 Internet Explorer 在单击单选按钮或复选框时往往会遇到麻烦。所有单选按钮和复选框都定义了 id-s,据我所知,这是在页面上查找元素的最便捷方法,因此当我开始遇到这些问题时,我感到非常惊讶。查找单选按钮的方法如下所示:

public static WebElement rad_Male(WebDriver driver) {
    element = driver.findElement(By.id("male"));
    return element;
}

点击是通过以下方式完成的:

rad_Male(driver).click();

正如我所说,Firefox 和 Chrome 可以轻松单击复选框和单选按钮,但是在 IE 中运行测试时,我遇到以下异常(该元素始终可见,我可以用鼠标单击它):

org.openqa.selenium.ElementNotVisibleException: Cannot click on element

我还尝试使用显式等待,以便让元素在访问它们之前加载,但没有运气 - 一旦函数超时,我就会得到 TimeoutException。我怀疑这与页面设计有关,但不幸的是我无法访问页面源代码,因此我无法更改页面结构以使其更易于测试。 单选按钮放置在许多其他 div 内,我认为还有一个表格用于对齐此元素和其他元素,但这看起来并不太复杂。这是单选按钮的代码:

<input type="radio" value="M" name="sex" id="male" tabindex="110">

我想我在类似主题之一中看到了一些 javascript 点击建议,但在采用此方法之前,我想确保没有其他方法可以使用 Webdriver 提供的方法使其工作。 我刚刚开始学习 Selenium,我尝试在旅途中完成工作,同时不断学习新东西,所以我对此还不太有经验。 如果您想了解更多详细信息,请询问,因为我不确定是否已全部包含在内。 提前致谢!

最佳答案

再次嗨,感谢所有回复的人!我的一个 friend 查看了这个问题并设法找出导致此问题的原因。单选按钮实际上通过以下方式包含在另一个 div 中:

<div class="radio" id="uniform-male">
    <span>
        <input type="radio" value="M" name="sex" id="male" tabindex="110">
    </span>
</div>

看起来这个父div“uniform-male”隐藏了这个按钮,因为Selenium能够点击这个div,因此,它下面的单选按钮被点击。 我想我应该第一时间发布单选按钮的代码以及它的父元素的一些代码,这样调试它会更容易。

再次感谢您就这个问题提供的所有帮助,谢谢!

关于java - Selenium 网络驱动程序 : IE can't find radio buttons nor checkboxes for using click() on them,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27134405/

相关文章:

java - 如何在 RecyclerView 适配器中显示 ImageView onClick 中的 Dialogfragment

java - 如何在计算期间存储数百万个 Double?

css - 如何让页脚停留在网页底部?

vba - Navigate2 调试

css - IE6 双重填充和边距错误

java - 字符串的选择排序算法

java - 添加您自己的词汇 [Nuxeo]

html - <o :p> elements do anyway? 是做什么的

javascript - 如何让回车键点击搜索按钮

html - 如何使用 css 在 ie 9 中定位表格?