Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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 如何减少在页面对象模型中初始化页面对象的时间_Selenium_Selenium Webdriver_Selenium Grid - Fatal编程技术网

Selenium 如何减少在页面对象模型中初始化页面对象的时间

Selenium 如何减少在页面对象模型中初始化页面对象的时间,selenium,selenium-webdriver,selenium-grid,Selenium,Selenium Webdriver,Selenium Grid,在我的Selenium自动化框架中,我们必须为每个@Test方法初始化页面类。加载每个方法的所有页面类花费的时间太长 以下是代码片段: public void presetup() { class1 = CustomPageFactory.initElements(Class1.class); class2 = CustomPageFactory.initElements(Class2.class); class3 = CustomPageFactory.initElem

在我的Selenium自动化框架中,我们必须为每个
@Test
方法初始化页面类。加载每个方法的所有页面类花费的时间太长

以下是代码片段:

public void presetup() {
    class1 = CustomPageFactory.initElements(Class1.class);
    class2 = CustomPageFactory.initElements(Class2.class);
    class3 = CustomPageFactory.initElements(Class3.class);
}
presetup()
方法将在每个
@Test
方法之前执行。每个测试大约有15个类需要初始化。这会影响我的整个测试执行时间。特别是当我们在网格环境下运行案例时,它需要花费大量的时间

在页面对象模型中,我们是否有减少执行时间的解决方法


在需要较少时间的地方初始化页面对象的任何替代方法?

PageFactory类只创建代理,不与页面交互。这不应该是造成巨大时间延迟的原因。CustomPageFactory类做什么?是否每个测试都需要所有15个页面对象?为什么不在BeforeClass方法中对其初始化一次并重新用于所有测试?CustomPageFactory将代理页面类的所有WebElement。我们不应该将它们保持在类级别,因为每次测试都会打开和关闭webdriver实例。如果我们将@BeforeClass设置为面向NullPointerException。您确定延迟与页面类初始化有关吗?可能延迟是由于初始化每个测试方法的WebDriver实例引起的。我也尝试在调试模式下运行脚本,这似乎是页面初始化的问题。@PrasadPasupuleti请编辑您的问题,并向我们展示
CustomPageFactory.initElements()
的外观?
org.openqa.selenium.support.PageFactory
的默认实现仅使用反射来加载类、实例化类并使用decorator设置其字段,访问时将调用decorators。它不应该花费时间,以至于它开始变得明显。顺便说一句,网格执行与此无关。您的网格执行可能会因为网络延迟而变慢。