1
如果按鈕不存在,則測試將掛起的時間超過5秒。等待HtmlElements
方法findElement()
在DefaultElementLocator
被調用〜63次!
塊的嵌套越深,等待時間越長。
是否可以在htmlElements中以這種方式使用塊? 我在做什麼錯?
@Test
public void myTestFunc() {
WebElement element = myPage.getMyForm()
.getSubForm()
.getButton()
.getWrappedElement();
try {
(new WebDriverWait(driver, 5))
.until(ExpectedConditions.visibilityOf(element));
} catch (Exception ex) {
ex.printStackTrace();
}
}
public class MyPage {
@FindBy(className = "...")
private MyForm myForm;
public MyPage(WebDriver driver){
PageFactory.initElements(new HtmlElementDecorator(driver), this);
}
public MyForm getMyForm() {
return myForm;
}
}
public class MyForm extends HtmlElement {
@FindBy(className = "...")
private MySubForm mySubForm;
public MySubForm getMySubForm() {
return mySubForm;
}
}
public class MySubForm extends HtmlElement {
@FindBy(className = "...")
private MyButtonWrap button;
public MyButtonWrap getButton() {
return button;
}
}
public class MyButtonWrap extends Button {
public MyButtonWrap(WebElement wrappedElement) {
super(wrappedElement);
}
// ...
}
我沒有看到60的使用在你的代碼的任何地方...... –
很奇怪...... 確定。我再次發射了25秒。 但它太多了,導致WebDriverWait將不得不拋出TimeoutExeption。 (按鈕不存在) 我知道在HtmlElements中AjaxElementlocator的默認等待時間爲5秒,但是這個函數會暫停25秒。 並且嵌套的嵌套越深,等待時間越長( –
隱含等待= 0 –