我在我的框架中使用頁面對象模型。我已經定義了所有通過靜態方法返回的webelements。例如:處理缺少的Web元素 - 頁面對象模型
@Test (priority=1)
public static void Verify_Login()
// Verify Logging in with right credentials
{
driver.get("myurl");
Login_Page.Textbox_UserName(driver).sendKeys
}
,我面對的是挑戰:
public class Login_Page {
private static WebElement element = null;
public static WebElement Textbox_UserName (WebDriver driver)
{
element = driver.findElement(By.xpath(".//div[@class='username']"));
return element;
}
而且在我的測試我使用這個通過輸入用戶名 假設此元素的應用程序不存在,說的XPath已經改變了,當執行Textbox_UserName方法時,我在Login_Page類中得到了「沒有這樣的元素異常」。 因此,腳本甚至沒有來到我的測試案例Verify_login()方法,我實際上在我的報告中輸入失敗。
if (Login_Page.TextBox_UserName(driver).isVisible()==true)
{
//PASS
}else
{
//FAIL
}
任何人都可以請建議我怎麼能趕上「沒有這樣的元素異常」從那裏,在從我的if/else條件執行我的報告中使用它? 我嘗試使用Try/Catch塊並返回異常,但由於返回類型是TextBox_Username()靜態方法中的webElement,所以我無法做到這一點。 任何幫助表示讚賞。提前致謝。
@ Ashish-這沒有奏效。 NOSuchElement異常不是來自Verify_Login方法。它來自PAge類中的靜態方法。所以這種方法不會工作:( – FreakTester