我正在PageFactory
使用 maven+TestNG 为网站编写一个框架,我有页面明智的PageObject
类,其中存在所有特定于页面的 Web 元素和操作,例如LoginPageObject
,AccountSelectionPageObject
......
我有一个类“Base”,其中 WebDriver、Logger 等常见元素是展示。我有一个类“BasePage”,其中存在单击、滚动、选择、刷新等常见操作...
MyTestng.xml<class>
对所有单独的页面都有单独的条目。只是我正在初始化浏览器对象@BeforeSuiit
并将其存储/放置在基类中,该基类正在我的测试类中扩展下面是我为我的项目提出的流程/架构。
问题:
我的每个测试类中都有多个 @Test。当我的测试类单独执行时,所有@Test 脚本都会执行,但是当我连续执行它们时,即我的testng 文件对我的所有测试类都有单独的条目,我的执行失败。错误说无法在页面上找到元素,我有等待语句,但它仍然无法正常工作。
我已经尝试调试代码,但无法找到原因,因为流程在第二页开始时停止,异常说元素未找到
代码:
@FindBy(id="listAccounts")
WebElement accountDropdown;
public void selectAccount(){
logger.info("Selecting Account");
implicitwait(10);
Select dropdown = new Select(accountDropdown);
logger.info("Drop down is multiple::"+ dropdown.isMultiple());
}
预期:
即使代码页分开,代码也应该完全执行。
实际:
当我在一个测试类中拥有所有页面代码时,执行代码。但是当我将它们分别放在页面测试类中时,会引发 element not found 异常。
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"id","selector":"listAccounts"}