问题标签 [page-factory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1443 浏览

java - 如何消除页面对象模型中的重复 WebElement

我正在使用 POM 框架,在其中为我的应用程序页面创建页面类。假设我的应用程序中有 2 页 1. 事件 2. 时间线。所以我创建了 2 个页面类

事件页面.java

时间线页面.java

因此,在这两个页面中,都有一些常见的 WebElement,例如//input[@placeholder='Search for entered records']or//button[@class='btn rc-gray-bg rc-dashboard-contact-btn ng-scope']等​​等。那么有什么方法可以管理页面对象模型中的这种冗余吗?

0 投票
1 回答
211 浏览

java - 如果找不到元素,我不希望此方法返回 null

我使用以下 mwthod 在我的页面工厂模型中创建动态元素。我将 IOSClassChain 值作为字符串传递,然后将其转换为元素。当元素存在于页面上时,这工作正常,但当元素不存在时返回 null。下面是方法:

我为 objElement 传递的值是:

有什么建议么?

0 投票
1 回答
1142 浏览

java - 带有通配符的 Pagefactory 动态 web 元素

我动态生成的定位器取决于将从列表中选择哪个元素。

例如,这是我生成的 id:

0 是计数器,表示从列表中选择第一个元素。计数器之前和之后的所有字符串都不会改变,所以开始,包含 xpath 方法不起作用。

我可以使用一些通配符,例如 Function:TableName:{X}:submenuAction{x} 是整数吗?

我可以存储所选数量的元素,但是如何在 pagefactory 元素中使用此变量?driver.findelement 可能会因 staleElementException 而失败,这就是我想使用 PageFactory 的原因。

0 投票
1 回答
585 浏览

selenium - 面向大规模应用的 Selenium 自动化的最佳设计模式

我想知道用于自动化大规模 SaaS 产品的 Selenium 的最佳设计模式。

寻找您对此的所有评论。

对于大型应用程序,我更喜欢将我的 xpath 用于页面对象文件中的 web 元素。但我的领导希望我将 xpath 保留在属性文件中,我们应该访问每个 xpath 的属性文件。这是将 xpath 保存在大型 SaaS 应用程序的属性文件中的好方法吗?

0 投票
2 回答
2020 浏览

selenium - Selenium 页面对象:我为什么要返回这个?

阅读SeleniumHQ 的 pageobject 文档,他们指定了从不导航到其他页面的方法返回“this”的示例。我的问题是为什么?

我认为页面对象的状态可能是一个原因,但是页面本身(实际的 UI 页面)可能会更改状态或刷新,但页面对象本身不会。带有 @FindBy 注释的页面工厂已经确保每次调用它时都会找到每个 WebElement,因此元素的状态似乎与这种情况无关。

0 投票
1 回答
182 浏览

java - AspectJ - 捕获所有使用 @FindBy 注释的 WebElement 的切入点

我的测试框架使用 selenium 的 PageFactory 和 Lambok。我想编写一个方面来捕获测试流在运行时遇到的所有 Web 元素。

一个典型的页面如下所示:

@FindBy 确定测试处理的 web 元素。有 50 个这样的页面。

当使用 PageFactory 实例化页面时,webElement 字段被实例化(分配有与 @FindBy 中的值对应的 WebElement 实例)。

我想在实例化后立即捕获这些带有 @FindBy/@FindAll 注释的 webElement。我不想为每个页面类编写单独的切入点。怎么做?

0 投票
1 回答
1739 浏览

c# - 使用页面对象模型和页面工厂为我的元素传递参数

有问题,我的元素需要接收参数才能定位元素,您可以使用:

我需要传递一个参数,例如:

我必须有页面的所有元素,如果它不破坏 POM

有知道的解决方法吗,谢谢

0 投票
3 回答
824 浏览

c# - Selenium c#使用Pagefactory查找页面上存在的元素

我正在将我的 selenium 脚本迁移到 PageFactory 并且目前坚持查找页面上是否存在元素

我目前的实现是

我的页面的篮子上有多个项目,如果我需要删除所有/部分项目。每次我删除页面都会刷新,但 Pagefactory FindsBy 不会刷新并保留第一个值。请提供任何帮助。

0 投票
1 回答
644 浏览

c# - 为 selenium pagefactory 设置 BasePage

我已经设置了我网站的前两个页面,两个页面在页面顶部共享一个实用导航栏。正如您在这两页中看到的那样,我不得不复制用于查找和单击这些元素的代码。我已经读到您可以将公共元素移动到基本页面,然后让您的其他页面共享该基本页面中的代码。

我的问题是,如何将重复的代码移动到新文件中,但仍然能够访问其他页面中的所有元素。

仪表板页面:

ClientDetailsOnePage:

0 投票
1 回答
108 浏览

c# - Selenium 无法访问我框架的 BasePage 中的操作

我目前有一个框架,它LoginPage.csDashboardPage.cs. 在DashboardPage.cs页面顶部有实用程序导航栏,它将出现在所有页面上。因此,我所做的是将PolicyBasePage.csLoginPage.cs.

我的测试方法在到达时中断dashboardPage.PolicyBasePage.SearchButton();,我收到以下错误消息:

消息:测试方法 TestAutomationFrameworkPOMS.TestScript.Tests.Test 抛出异常:System.NullReferenceException:对象引用未设置为对象的实例。

测试方法.cs:

仪表板页面.cs:

PolicyBasePage.cs: