簡體   English   中英

Page對象工廠中的硒聲明

[英]Assertions in selenium with Page Object Factory

如何使用@FindBy變量的路徑/位置作為方法的參數?

我的課上有以下@FindBy值...

@FindBy(xpath=".//*[@id='HasAnotherSubsidisedQual_container']") 
@CacheLookup WebElement mSubsidisedQual;

然后,我有了一種檢查元素是否存在的方法。

public boolean isElementPresent(By element){
    try {
        mDriver.findElement(element);
        return true;
    }
    catch (org.openqa.selenium.NoSuchElementException e){
        return false;
    }
}

然后,我在另一個包含斷言的方法中使用該方法

public void checkSmartAndSkilled () {
    Assert.assertTrue(isElementPresent(By.xpath(".//*[@id='HasAnotherSubsidisedQual_container']")));
}

這一切都很好,但是不是在斷言中指定By.xpath ...等,還是有將@FindBy WebElement mSubsidisedQual的路徑作為參數傳遞嗎?

非常感謝

您無需再次提供xpath。 由Page Factory初始化后,只需將元素作為參數傳遞即可。

public void checkSmartAndSkilled () {
    Assert.assertTrue(isElementPresent(mSubsidisedQual));
}

您剛創建了錯誤的方法。 而且您檢查元素存在的方式是錯誤的。 但是,如果您想以這種方式進行操作,那么您應該做的就是對其進行重載,以使參數成為您的元素。

然后調用該元素(例如單擊或使用其屬性,如Enable或Count或Length或Java中可用的任何內容),如果該元素不存在,它將捕獲相同的錯誤。 如果存在,則返回true。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM