gpt4 book ai didi

selenium - WebDriver PageObjects 的代码生成

转载 作者:行者123 更新时间:2023-12-02 12:15:18 26 4
gpt4 key购买 nike

我正在尝试为 WebDriver 中的页面对象创建某种代码生成。

我读到了它,并观看了下一个讲座: http://www.youtube.com/watch?v=mSCFsUOgPpw

我还看到一些工具可以为我的应用程序中的每个新页面创建一个页面对象,因此我知道如何识别和创建与我相关的 WebElement(通过 ID 或 XPath),并创建一个新的页面对象。

但我有两个主要问题:

  1. 我如何知道如何处理这些元素?有的需要点击,有的需要发送按键,有的需要点击然后按ENTER键等等。
  2. 导航 - 在我的测试代码中,我想按页面进行导航(这都是关于页面模式的)。我如何知道我的页面对象之间的连接?

最佳答案

为每个小部件创建一个(可重用)页面对象(小部件=按钮、组合框、文本字段...)。小部件的构造函数接受 WebElement 或 By 对象。每个页面对象都应该使用可重用的页面对象。这是一个简单的登录页面的示例。

public class MyLoginPage {
private TextField mUsername;
private TextField mPassword;
private Button mSignon;

...

// getter
public TextField getUsername() {
return mUsername;
}

}

通过使用一些启发式方法,您应该能够选择要使用的正确小部件。这应该可以回答您的第一个问题。

对于第二个问题。要么在页面对象上实现特定方法,返回另一个页面对象。类似这样的事情:

public MyHomePage clickSignon() {
this.mSignon.click();
return new MyHomePage(...);
}

您还可以将按钮实现为通用类。单击 Button 小部件的方法:

public <T extends Widget> T click() {
... // coe that makes the click
return new T(...);
}

登录页面内的成员(member)声明:

private Button mSignon<MyHomePage>;

所以你可以写:

MyHomePage hp = loginPage.getSignon().click();

要么实现页面对象工厂。工厂能够确定屏幕的当前状态并返回与您所看到的内容相匹配的页面对象。您可以通过尝试在屏幕上查找某些特定元素来确定这一点(即登录按钮仅出现在登录页面上)。

根本没有明确的答案,但我希望它已经给了你方向。请随时在评论中提出问题,我将更新此答案。

关于selenium - WebDriver PageObjects 的代码生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21661320/

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