Selenium RC中isElementPresent和isVisible之间的区别

Har*_*chi 9 java selenium selenium-rc

元素isElementPresentisVisibleSelenium RC 之间有什么区别.我明白了

selenium.isElementPresent()selenium.isVisible()

如果我因为selenium.isElementPresent()我得到例外而变得虚假selenium.isVisible()

Sac*_*tre 21

isElementPresent() - 此方法基本上测试我们要查找的元素是否存在于页面的某个位置.

isVisible() - 查找display:none style tag - 如果我们不小心,这可能会抛出一个空指针...因此,要查看元素是否可见,首先使用isElementPresent()方法检查元素是否存在.然后尝试检查元素是否可见!

观察即使我们的元素不可见,isElementPresent()也不介意.

例如:假设以下是我的测试应用程序中组件的html代码:

现在,如果你测试上面的组件

selenium.isElementPresent("testinput") - returns true!
selenium.isVisible("testinput") - returns false!
Run Code Online (Sandbox Code Playgroud)


JB *_*zet 11

阅读文档怎么样?

boolean isElementPresent(java.lang.String locator)

验证指定的元素是否在页面上的某个位置.

boolean isVisible(java.lang.String locator)

确定指定的元素是否可见.通过将CSS"visibility"属性设置为"hidden",或将"display"属性设置为"none",可以使元素变为不可见,无论是元素本身还是元素本身.如果元素不存在,此方法将失败.

  • API似乎设计不佳.如果你想要一个断言,你会说assertElementIsPresent或assertIsVisible.如果目标不可用,isMethods不应该抛出异常.问题来自API的非对称设计.那天你一定有糟糕的一天. (2认同)