Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 惰性初始化页面对象元素_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java 惰性初始化页面对象元素

Java 惰性初始化页面对象元素,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我有PageObject,其中50个元素描述了页面上的所有元素。超过30个测试使用此元素。但是,我怎样才能只使用测试所需的元素,而不全部初始化它们呢 public class DetailReportingPage extends BasePage { public static final String PAGE_URL = ReportingPage.PAGE_URL + ":ReportingDetailTab"; public Button detailSubTabB

我有PageObject,其中50个元素描述了页面上的所有元素。超过30个测试使用此元素。但是,我怎样才能只使用测试所需的元素,而不全部初始化它们呢

public class DetailReportingPage extends BasePage {

    public static final String PAGE_URL = ReportingPage.PAGE_URL + ":ReportingDetailTab";

    public Button detailSubTabBtn = new Button(By.id("DetailSubTab"));

    public TextField reportNameSelect = new TextField(By.id("IR.IrReportingDetailSubTab.ComboBox.ReportName-input"));
    public DropDown reportNameDropDown = new DropDown(By.id("IR.IrReportingDetailSubTab.ComboBox.ReportName-trigger"));
    public TextField reportNameInput = new TextField(By.id("IR.IrReportingDetailSubTab.TextField.ReportName-input"));
    public TextField fileTypeHistory = new TextField(By.id("IR.IrReportingDetailSubTab.ComboBox.FileType-input"));
    public TextField fileTypeSummary = new TextField(By.id("IR.IrReportingDetailSubTab.ComboBox.FileType2-input"));
    public TextField valueDate = new TextField(By.id("IR.IrReportingDetailSubTab.DateField.Element22-input"));
    public TextField curveDate = new TextField(By.id("IR.IrReportingDetailSubTab.DateField.Element23-input"));

    public CheckBox includeAll = new CheckBox(By.id("IR.IrReportingDetailSubTab.IdAwareCheckBox.Element27"));

    public Button editBtn = new Button(By.xpath("//div[contains(@__gwtcellbasedwidgetimpldispatchingfocus,'true')][.//table[contains(@class,'mainTable')]][.//div[text()='Edit']]"));
    public Button deleteBtn = new Button(By.xpath("//div[contains(@__gwtcellbasedwidgetimpldispatchingfocus,'true')][.//table[contains(@class,'mainTable')]][.//div[text()='Delete']]"));
    public Button runReportBtn = new Button(By.xpath("//div[contains(@__gwtcellbasedwidgetimpldispatchingfocus,'true')][.//table[contains(@class,'mainTable')]][.//div[text()='Run Report']]"));
    public Button mtmHistoryRbtn = new Button(By.xpath("//label[text()='MTM History']/preceding-sibling::input"));
    public Button meSummaryRbtn = new Button(By.xpath("//label[text()='ME Summary']/preceding-sibling::input"));
    public Button mtmDetailRbtn = new Button(By.xpath("//label[text()='MTM Detail']/preceding-sibling::input"));

    //region for MTM History Type
    public CheckBox cleanMarketValueChbx = new CheckBox(By.xpath("//label[text()='Clean Market Value']/preceding-sibling::input"));
    public CheckBox dirtyMarketValueChbx = new CheckBox(By.xpath("//label[text()='(Dirty) Market Value']/preceding-sibling::input"));
    public CheckBox cvaChbx = new CheckBox(By.xpath("//table[contains(@class, 'ReportMTMHistory')]//label[text()='CVA']/preceding-sibling::input"));
    public Button curveDateRbtn = new Button(By.xpath("//label[text()='Curve Date']/preceding-sibling::input"));
    public Button staticDateRbtn = new Button(By.xpath("//label[text()='Static Date']/preceding-sibling::input"));
    public TextField date = new TextField(By.id("IR.IrReportingDetailSubTab.DateField.Element17-input"));
    public TextField startDate = new TextField(By.id("IR.IrReportingDetailSubTab.DateField.StartDate-input"));
    public CheckBox scheduleChbx = new CheckBox(By.xpath("//label[text()='Schedule']/preceding-sibling::input"));
    public CheckBox manualInputChbx = new CheckBox(By.xpath("//label[text()='Manual Input']/preceding-sibling::input"));
    public CheckBox summaryColumnChbx = new CheckBox(By.xpath("//table[contains(@class, 'ReportMTMHistory')]//label[text()='Summary Column']/preceding-sibling::input"));
    public CheckBox individualTradeChbx = new CheckBox(By.xpath("//table[contains(@class, 'ReportMTMHistory')]//label[text()='Individual Trade']/preceding-sibling::input"));
    public TextField numOfDates = new TextField(By.id("IR.IrReportingDetailSubTab.NumberField.#ofDates-input"));
    public TextField frequency = new TextField(By.id("IR.IrReportingDetailSubTab.ComboBox.Frequency-input"));
    public TextField firstMonth = new  TextField(By.id("IR.IrReportingDetailSubTab.ComboBox.FirstMonth-input"));
    public Table scheduleDates = new Table(By.xpath("(//div[contains(@class, 'scroller')]//table/tbody)[4]"));
    public TextField dateField = new TextField(By.id("IR.IrReportingDetailSubTab.ComboBox.Date-input"));
}

你试过什么?如果您不想在测试之前初始化它们。。为什么?您是否考虑过使用
供应商
<代码>公共供应商includeal=()->新复选框(By.id(“IR.unreportingdetailsubtab.IdAwareCheckBox.Element27”)PageFactory
@FindBy
注释。它提供了懒惰的实例化,正如上面提到的,PageFactory完全满足您的需求。