第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

放在單獨的測試類中時代碼不執(zhí)行

放在單獨的測試類中時代碼不執(zhí)行

猛跑小豬 2023-03-09 17:11:44
我正在為PageFactory一個使用 maven+TestNG 的網(wǎng)站編寫一個框架,我有頁面PageObject類,其中存在所有特定于頁面的 Web 元素和操作,例如LoginPageObject,AccountSelectionPageObject......我有一個類“Base”,其中常見元素如 WebDriver、Logger 是展示。我有一個“BasePage”類,其中存在單擊、滾動、選擇、刷新等常見操作<class>MyTestng.xml對所有單獨的頁面都有單獨的條目。只是我正在初始化瀏覽器對象并將@BeforeSuiit其存儲/放置在正在我的測試類中擴展的基類中下面是我為我的項目提出的流程/架構(gòu)。 問題:我的每個測試類中都有多個@Test。當我的測試類單獨執(zhí)行時,所有@Test 腳本都會執(zhí)行,但是當我連續(xù)執(zhí)行它們時,即我的testng 文件對我的所有測試類都有單獨的條目,我的執(zhí)行失敗。錯誤說無法在頁面上找到元素,我有等待語句,但仍然無法正常工作。我試過調(diào)試代碼,但無法找到原因,因為流程在第二頁開始時停止,并顯示找不到元素的異常代碼:@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());}預期:即使代碼頁分開,代碼也應該完全執(zhí)行。實際:當我將所有頁面代碼都放在一個測試類中時,代碼就會執(zhí)行。但是當我將它們分別放在頁面測試類中時,會拋出元素未找到異常。org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"id","selector":"listAccounts"}
查看完整描述

2 回答

?
慕哥6287543

TA貢獻1831條經(jīng)驗 獲得超10個贊

在使用 PageFactory 框架的 POM 中,應該在 PageClasses 的構(gòu)造函數(shù)中初始化 PageFactory。請在下面找到可能適用于您的情況的代碼片段。


public class LoginPage extends TestBase {


public LoginPage() {

    PageFactory.initElements(driver, this);//Here driver is initialised in TestBase class and inherited in LoginPage class

}

//your code


@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());

}

}


查看完整回答
反對 回復 2023-03-09
?
梵蒂岡之花

TA貢獻1900條經(jīng)驗 獲得超5個贊

對克里希納答案的補充:


PageFactory.initElements(driver, this); 

上面的代碼可以移到基類和 LoginPage 中,你只需像這樣在構(gòu)造函數(shù)上傳遞 webdriver。


public class LoginPage extends Base {


public LoginPage(Webdriver driver) {

    super(driver);

}

...

public class Base {


public Base(Webdriver driver) {

    PageFactory.initElements(driver, this);

}

...


查看完整回答
反對 回復 2023-03-09
  • 2 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號