• pageLoadTimeout这个设置之前我确实没有注意到,就我刚刚查找的相关的selenium issues来看,这个设置在selenium 3 和FF55以下的版本存在bug。更新到最新的FF和selenium就可以设置了。

    我试了在click命令之前更改这个参数,确实会产生“org.openqa.selenium.TimeoutException: Timed out waiting for page load.”。

    但是,click这个命令,官方文档里写的是“If this causes a new page to load, you should discard all references to this element and any further operations performed on this element will throw a StaleElementReferenceException. Note that if click() is done by sending a native event (which is the default on most browsers/platforms) then the method will not wait for the next page to load and the caller should verify that themselves.”,这难道不是说它不会受设置的超时时间的限制吗?然后我就糊涂了。。。

    我还是个新手,肯定还有很多理解不到的地方,请多多指教~

  • 您说的waitForElement(elementLocator)是指把我的代码中wait.until(ExpectedConditions.visibilityOf(webElement))那部分代码封装成一个单独的方法吗?如果我理解的没错的话,这个当然可以。
    只是我的问题是,是否有一个方法可以做到:点击一个button->页面跳转到全新页面,这个新页面加载过程中程序是block住的,就像get(url)打开全新页面那样,只有等到页面加载完成才会进入下一步。这样的话下一步检查标志元素没有出现,我们就可以判断新页面打开的不对,而不用担心等待时间不够元素还没有完全加载。

  • 有道理~多谢~

欢迎大家关注我的小小公众号“QA说”,新手上路,尽我所能分享我的学习所得,希望大家不吝赐教~