我会给你一点背景知识。对于大多数操作,我都很高兴,测试看起来相当稳定,只需4秒的隐式等待。
然而,有时候我知道如果元素要显示在页面上,它已经在那里了,所以如果我正在对一个元素列表进行操作,我希望驱动程序不要等到每个元素都没有4秒才决定它不在那里,然后继续前进。
因此,虽然我可以设置driver.manage().timeouts().implicitlyWait(100,TimeUnit.MILLISECONDS)并快速遍历列表,但我希望在解析完列表后将implicitWait设置回其初始值。
是的,你可以控制每个项目的一些默认设置并传递它们,但当你想要对其他依赖于并设置自己的默认值的顶级项目执行此操作时,并不总是很容易。
我做了一点阅读,似乎每个人都同意这个超时可以设置多次每次运行。Selenium现在已经相当成熟了,那么我错过了什么呢?为什么要提供一个没有getter的setter呢?
发布于 2018-08-20 21:25:56
没有这样的方法,坦率地说,不需要它的。但是,如果您出于某种奇特的原因需要它,您仍然必须自己实现它。
假设您有一些用于驱动程序实例化和设置常见属性的基类,如wait和all。在这里,您可以创建一个timeOut变量,以及它的getter和setter方法。在后面的类中,您可以随心所欲地调用getWait()。
int timeout = 0;
public void setWait(int timeout) {
this.timeout = timeout;
this.manage().timeouts().implicitlyWait(timeout, TimeUnit.SECONDS);
}
public int getWait() {
return timeout;
}https://stackoverflow.com/questions/51922154
复制相似问题