为了账号安全,请及时绑定邮箱和手机立即绑定

给定一个 webelement,点击它会导致页面重新加载吗?

给定一个 webelement,点击它会导致页面重新加载吗?

犯罪嫌疑人X 2021-09-15 15:30:04
我在做什么我一直在制作一个实用方法来帮助我找到并正确等待 Selenium 中的 Webelements。到目前为止,它进展顺利,我有办法尝试各种不同的定位器,等到找到一个 webelement,然后等到 webelement 显示/启用所有超时和类似的好东西。那有什么问题呢?问题是我有时需要在页面重新加载后找到 Webelement。我已经阅读了“陈旧”问题的可用解决方案,我知道如何解决它(使用我刚刚找到的旧 webelement 并点击我会等到它过时再搜索)但我不想要必须手动检查给定的 webelement 是否会导致页面重新加载。我试过查看 Webelement 和 Expected conditions 类,看看是否有任何方法可以在给定的 webelement 导致页面重新加载时返回 true。我试过在这里和谷歌上搜索它并没有得到任何有用的信息。我想知道是否有可能有这样的东西:Boolean causesPageReload = webElement.causesPageReload;使用一些虚构的方法causesPageReload来确定 webelement 在被点击、提交等时是否会导致页面重新加载。我知道有些网页元素只会导致 javascript 在页面上运行,而其他网页元素会重新加载页面,但是如果我可以通过编程方式确定它是否会重新加载页面,我可以说:if (causesPageReload){     wait.until(ExpectedConditions.stalenessOf("insert old webelement here"));     }并解决问题。底层 HTML、javascript 或已经内置的内容中是否有任何内容可以提供此信息?当然,我可以自己手动完成这些步骤,并查看哪些被测试的 webelement 实际上会导致页面刷新,但这可能会发生变化,容易出现人为错误且耗时。可能的替代方案?或者,我可以在 10 秒的超时时间内进行我的陈旧检查,然后如果它重新加载页面那很好,但如果它没有,它允许 javascript 或其他任何东西 10 秒来完成它正在做的事情。(我也有点想知道我是否还需要等待非页面重新加载 webelement 点击,但由于 javascript 而这似乎更难,并且需要一个不同的问题)我不知道我是否需要等待如果页面不去重新加载。即使我知道在非重装情况下我确实需要等待,我也不知道该怎么做。我目前的等待只是等待 webelement 被找到、显示和启用,所以如果点击它会导致一些重要的事情(我需要等待)但不会改变这些事情,我需要其他东西,但这需要另一个问题更深入。
查看完整描述

2 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

您可以使用

WaitElement(pBy, pWait);

结束如果你需要如果元素是可见的继续你可以添加 is_displayed()

finaly 不起作用,您使用 java 等待:

Thread.sleep(second)

或者

TimeUnit.SECONDS.sleep(second);


查看完整回答
反对 回复 2021-09-15
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信