基本的に、WebElementにtext()が含まれていることをテストクラスからアサーションしたいと考えています。私のWebElementsはすべて私のpage.classに定義されているので、これを公開する必要があります。テストクラスのPageFactory POMのWebElementsを使用する
webdriverと要素にいくつかの問題があります。複数のテストクラスがWebElementsをページクラスから同時にアクセスしている可能性があります。私の質問は、WebElementsがプライベートでなければならない理由はありますか?
コード例:
私が見てきたすべてのPageFactoryチュートリアルは
@FindBy(xpath = "//*[@id='searchStringMain']")
private WebElement searchField;
のように、あなたのWebElementsをプライベートにするためにしかし、要素は(他のクラスからの)テキストが含まれていることを主張すると言う、私が定義する必要がありますこのようにそれら:
@FindBy(xpath = "(//*[contains (text(),'Hrs')])[2]")
public static WebElement yourLoggedTime;
PageObjectsの目的は、ページ要素の詳細をカプセル化することです。あなたがそれらを公開した場合、それらのいずれかが変更された場合(そうでない場合)は、あなたが参照したすべての場所を狩り、変更を複製する必要があります。ページオブジェクトにWeb要素をカプセル化することによって、それを一度変更します。テストでは、どの要素が操作されたかに関する詳細ではなく、動作(例:searchFor)に注意する必要があります。要素の詳細は、PageObjects内にのみ存在します。 – MikeJRamsey56