我試圖在txtStockOnHand字段中輸入一個值。但是,它總是拋出一個錯誤org.openqa.selenium.TimeoutException:等待元素可點擊30秒後超時:By.id:txtStockOnHand即使我等待元素可點擊。即使我等待元素可點擊30秒,元素也無法點擊
硒Java代碼:
@FindBy(how = How.ID, using = "txtStockOnHand")
static WebElement txtStockOnHand;
public void waitForClickable(String strElementID){
wait.until(ExpectedConditions.elementToBeClickable(By. id(strElementID)));
}
// Set SOH in SOH textbox
public void setStockOnHand(String strStockOnHand){
txtStockOnHand.sendKeys(strStockOnHand);
}
public void enterStockOnHand(String strStockOnHand){
this.waitForClickable("txtStockOnHand");
this.setStockOnHand(strStockOnHand);
txtStockOnHand.sendKeys(Keys.TAB);
}
HTML代碼:
我添加了thread.sleep(1000)到enterStockOnHand方法。它仍然沒有工作。它引發org.openqa.selenium.ElementNotVisibleException:元素不可見的錯誤。 –
你把它放在哪裏?在你調用該方法之前?或者在txtStockOnHand.sendKeys(strStockOnHand)之前調用該方法之後;? – jace
我敢打賭你必須把它放在方法裏面。沒有什麼會改變,如果你把它放在方法之外,因爲硒仍然會發現元素strStockOnHand,到那時真的還不可見 – jace