Selenium webdriver 页面工厂如何验证元素?

Selenium webdriver 页面工厂如何验证元素?,selenium-webdriver,Selenium Webdriver,我已经为登录页面创建了一个对象类,并将登录按钮声明为: @FindBy(xpath="//*[@id='btnLogin']") public WebElement loginbutton; 现在在我的测试用例中,我将带有页面工厂的login类安装为: loginPage p = new loginPage(driver); PageFactory.initElements(driver, p) p.loginbutton.isDisplayed(); ------> to check

我已经为登录页面创建了一个对象类,并将登录按钮声明为:

@FindBy(xpath="//*[@id='btnLogin']")
public WebElement loginbutton;
现在在我的测试用例中,我将带有页面工厂的login类安装为:

loginPage p = new loginPage(driver);
PageFactory.initElements(driver, p)

p.loginbutton.isDisplayed(); ------> to check if login button is displayed
如果xpath是正确的,那么这可以正常工作。但是,如果xpath不正确,则会引发异常,我无法捕获该异常,因为该异常是在初始化页面对象类时引发的。因此控件永远不会到达测试用例。有没有办法处理这种情况


感谢

如果xpath错误,为什么在初始化页面对象类时会引发异常。如果更改了登录按钮的xpath,则会引发异常,我希望捕获该异常。但我无法在PageFactory中使用。有什么方法可以捕捉到它吗?您是否收到此编译时错误:
@FindBy不允许在此位置出现
如果无法捕捉到异常,您如何知道会引发异常?;)我猜在你的框架中,你正在吃这个例外。另外,为什么要使用XPath来定位一个仅仅是ID的元素?只需使用ID。为编程语言添加一个标记,并澄清您的问题。