我正在编写测试,我在页面上查找元素,然后重新加载页面。
步骤:
id="elementid"
存在。id="elementid"
存在。我想知道以下用例中的行为。
**
id="elementid"
偶数元素的存在时
虽然页面实例是旧的?或者它会抛出异常吗?**
答案 0 :(得分:1)
有三种选择:
根据Selenium是否在重新加载页面之后分配内部元素ID,您可以使用StaleElementReferenceException。
这就是我在我的框架中处理它的方式:
检查它是如何进行的,如果可能的话,添加唯一页面元素的验证(如果在页面重新加载之后存在任何唯一的页面元素,而不是之前),在必要时在第二个元素查找之前添加显式等待。
答案 1 :(得分:0)
如果页面是旧页面或新页面或部分加载,则无关紧要。如果页面的DOM中不存在该元素,则只会抛出异常。那么这是怎么回事Selenium工作
如果验证元素是否存在于DOM中,它将返回true
FindElement
这种方法受到隐含等待'时间有效 执行时间。 findElement(..)调用将返回一个 匹配行,或重复尝试直到配置的超时为止 达到。
答案 2 :(得分:0)
无论如何都会尝试搜索元素。
如果它突然消失 - 你得到StaleElementReferenceException
如果不存在 - NoSuchElementException
如果您认为(非)重新加载页面的事实对您的测试很重要并且您真的想知道(或采取适当的措施),请将document.readyState
检查为complete
(加载时) )或不complete
(在加载时)