gpt4 book ai didi

java - 如何在 Java Selenium 中使用类型对象传递页面元素

转载 作者:行者123 更新时间:2023-12-02 11:11:53 25 4
gpt4 key购买 nike

我使用以下方法在 C# 中加载页面的页面工厂元素。我想在Java中做类似的事情。有人知道我该怎么做吗?

这是 Pages.cs 文件:

using System.Dynamic;
using OpenQA.Selenium.Support.PageObjects;

namespace Framework.Pages
{
public static class Pages
{
private static T GetPage<T>() where T : new()
{
var page = new T();
PageFactory.InitElements(Browser.Driver, page);
return page;
}


public static RegistrationPage RegistrationPage
{
get { return GetPage<RegistrationPage>(); }
}
public static NavigationLinks NavigationLinks
{
get { return GetPage<NavigationLinks>(); }
}
}
}

有一个 RegistrationPage.cs 和 NavigationPage.cs 文件,其中定义了所有页面工厂元素和页面特定方法。

所以有了这个系统我可以简单地写

Pages.NavigationLinks.ClickRegistration();
Pages.RegistrationPage.CompleteForm();

类似于没有任何实例化的测试线。当我调用 Pages.NavigationLinks 时。它会自动加载页面元素和方法。

是否可以用Java创建这样的系统

最佳答案

   public class Pages {
private static<T> T getPage(Supplier<T> construct) {
T t = construct.get();
PageFactory.initElements(driver, t);
return t;
}
public static RegistrationPage getRegistrationPage() {
return getPage(RegistrationPage::new);
}
}

关于java - 如何在 Java Selenium 中使用类型对象传递页面元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50560416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com