Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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
Selenium webdriver 使用new来创建和初始化页面而不是pagefactory.initelements方法可以吗_Selenium Webdriver - Fatal编程技术网

Selenium webdriver 使用new来创建和初始化页面而不是pagefactory.initelements方法可以吗

Selenium webdriver 使用new来创建和初始化页面而不是pagefactory.initelements方法可以吗,selenium-webdriver,Selenium Webdriver,我正在开发一个基于pagefactory的框架。我以前曾使用pagefactory.initements方法对页面进行初始化并在页面之间移动。Init方法的作用基本上与Homepage HP=newhomepage(驱动程序)的作用相同 所以有必要在pagefactory中使用init方法吗? 如果我们不使用它,而是使用new来创建页面,我们会失去一些东西。如果您使用带有注释的Java PageFactory,是的 PageFactory.initElements(driver,My.class

我正在开发一个基于pagefactory的框架。我以前曾使用pagefactory.initements方法对页面进行初始化并在页面之间移动。Init方法的作用基本上与Homepage HP=newhomepage(驱动程序)的作用相同

所以有必要在pagefactory中使用init方法吗?
如果我们不使用它,而是使用new来创建页面,我们会失去一些东西。

如果您使用带有注释的Java PageFactory,是的

PageFactory.initElements(driver,My.class)
命令解析注释并设置Java代理类。如果不
.initElements()
则类中的所有WebElements都不会分配定位器,并且它们都将为空

如果只想新建页面,可以将
.initElements()
放入构造函数中,例如:

public class MyPage {

    public MyPage(WebDriver driver) throws Exception {
        PageFactory.initElements(driver, this);
    }
}

如果我没有使用@findby annotation,那么我可以跳过使用.initelements()完全正确吗?如果你没有使用批注,那么使用PageFactory就没有任何意义。