问题标签 [pageobjects]

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 投票
1 回答
388 浏览

java - Selenium Webdriver (Java):使用 objectmap.properties 文件而不是 Page Objects 类有什么好处(如果有的话)?

我正在为我们的网站实现 Selenium Webdriver 2 自动化测试,但无法明确评估使用 objectmap.properties 文件存储所有元素定位器与将它们存储在页面对象 java 类中的好处是什么?

此外,似乎为页面对象使用 java 类也允许在这些页面对象类中公开和抽象页面操作,而我不清楚如果使用 objectmap.properties 文件将如何做到这一点?

还是我错过了重点,而两者最好结合使用?

提前致谢!

0 投票
1 回答
405 浏览

selenium-webdriver - Selenium:如何在 C# 中使用 ByChained 类?

我有两个问题

Selenium:如何在 C# 中使用 ByChained 类?

有没有办法提供多个标识属性,如类和内部文本来标识 pageobject 和 pagefactory 模型中的元素?

0 投票
2 回答
233 浏览

protractor - 在页面对象模型实现方面需要帮助

我正在实现页面对象模型的过程中,我有一个关于它的查询,请参见下文:

我已经创建了具有页面定位器和方法的页面文件,我有规范文件,我在其中通过调用这些方法来进行断言。我的问题是,对于一页我有超过 100 个测试用例,现在我应该为单个测试创建单个断言文件还是应该为 100 个测试创建 100 个断言文件。

请让我知道管理它的最佳方法是什么。

问候, 马南

0 投票
2 回答
1375 浏览

java - WebDriver:自定义创建的 Web 元素和驱动程序的 Wrapper 类中的编译错误

// 我想使用我自己的自定义元素而不是 selenium 定义的 web 元素 //like webElement 和 WebDriver 等。所以,我创建了以下自定义包装类:-

//现在,我在下面的pageObject代码中调用我的包装类。但它给出了错误。请//帮助我:-

0 投票
1 回答
609 浏览

class - WebDriver PageObjects & 大量定位器

在过去的一年里,我为我的团队构建了一个非常好的 WebDriver 框架。相当标准的票价:页面类通常在我们的平台上封装页面的全部功能(控件作为对象,根据需要的方法)并使用一些全局方法扩展基类,在 JUnit 测试类中调用多个页面,典型的断言方法,亚达亚达。书本上没有什么奢侈的东西,但非常实用和灵活。

然而,最近,我被要求使用该框架来自动化大量页面,这些页面的表单可以容纳 100 个甚至更多的输入、选择、选项等。这让我感到非常震惊。此外,许多自定义表单控件的 id 会随着环境的变化而变化(幸运的是,在初始推送后它们在每个环境中保持静态)。反正...

让我们看一下我每天使用的典型 PageObject 结构:

就像我提到的,这里没有什么异国情调,但现在我要向大家提问。假设我没有传统的 5-15 By's per PageObject,但可能需要超过 100 个页面来处理 10 个页面。更复杂的是,它们在每个环境中也将具有独特的价值,这完全不在每个人的控制范围内,无法调和。那么这里的适当方法是什么......我是否咬紧牙关并硬编码每页 100 英寸作者,我是否将所有作者外部化为,比如说,一个 Excel 文档并通过我不知道,JXL 或其他方式拉入所有内容,或者我是否对我知道将是静态的 By 进行硬编码并将所有内容都放入外部文件中?

归根结底,我知道没有正确的答案,但我只是好奇其他人对此的态度。现在,我已经为具有如此多表单元素的页面外部化了 By,并定义了不会在 PageObject 中更改的控件,但感觉很笨重。也许我追求的优雅太多了,但任何想法都会非常棒。

0 投票
4 回答
23987 浏览

java - WebDriver/PageObject/FindBy:如何使用动态值指定 xpath?

我正在尝试在 Java 中使用Page Object模式,但在使用@FindBy/XPath时遇到了一些问题。

早些时候,我在 Groovy 中使用了以下构造:

现在,我想做同样的事情,但要按照 Java 中的页面对象范式:

在我的测试中,我调用了 deleteSystem:

问题:如何将@FindBy 表示法链接到为 deleteSystem 指定的 PlantSystemNameSystemName

谢谢,浣熊

0 投票
1 回答
206 浏览

java - 使用 Webdriver 页面对象模型处理大量 WebElement 的断言

我有一个包含 50 个奇怪的 WebElements 的页面,我想断言它们具有正确的文本。我正在使用页面对象,因此测试与对象分开,测试是断言必须存在的地方。

我不希望每个元素有 50 个单独的 @Test,所以我需要某种集合、列表或数组来保存文本值,然后针对每个元素进行断言。但是,如果一个文本值有误,我不希望测试失败(可能的情况是页面频繁更新并包含 50 个值)。这指向每个断言的单独@Test?

所以我需要在 PageObject 中为每个元素做一个 driver.findElement(By.....

然后,我需要使用 .getText()) 将 WebElement 的值作为字符串传递给测试类,最好采用一种方法。

我需要断言测试类中 50 个值中的每一个的文本都是正确的,最好在一个 @Test 下,但如果一个值不正确,则测试不会失败。

我已经为此苦苦挣扎了几个小时,如果不清楚,我很抱歉,并为这段文字道歉;我是一个初学者 - 如果我能澄清,请询问。显然,我缺少一种通用的方法。

谢谢

0 投票
2 回答
1202 浏览

selenium - 如果我使用 Specflow 和 Selenium (BDD),我必须注销用户时

我已经开始使用 Specflow、Selenium 和 PageObject 模式进行测试。我想让场景彼此独立,但是当我开始运行我的测试功能时,我发现我的用户在第一个场景之后不是匿名的。

  • 我应该什么时候注销测试用户?
    • 在每个场景之前?
    • 在每个场景之后?
  • 在每个场景之后,specflow 和 selenium 会下降状态吗?
  • page.Logout()我必须每次都打电话吗?
0 投票
1 回答
125 浏览

widget - UI 自动化中页面对象的设计实现

在过去的几周里,我一直在为这种 UI 自动化设计而苦苦挣扎。我们为基于 Widget 的 UI 自动化提出了什么,使用 Page 对象听起来像是一个非常乏味的想法,很快就会失去控制并且无法管理。

我在这里问这个问题以防万一,任何人都可以提出一些新的想法或实现这一点的方法。

我们正在尝试使用页面对象自动化基于小部件的 UI。现在,这些小部件应该是可重用的。他们有不同的布局,可能在元素、它们的 CSS 等方面有所不同。

问题是,每个小部件的布局可能在 1-20 左右之间。此外,还有复合小部件,它们由其他一些小部件组成,并且也有自己的布局。所以总而言之,复合小部件除了具有自己的布局外,还将包含其底层小部件的不同布局。

我们提出的这种框架是为每个小部件的每个不同布局创建接口和实现(尽管一个小部件的 90% 的布局几乎总是只在 CSS 中改变;html 保持不变。 CSS 类被硬编码到布局定义中。)。我已经对我们期待的维护量感到不知所措。

任何人都可以提出更好的解决方案吗?这将不胜感激。

0 投票
2 回答
2062 浏览

selenium - FindBy 属性何时触发 driver.FindElement?

我的问题是:用 findby 属性装饰的 webelements 在每次引用它们时都会调用 findelement 函数吗?如果没有,什么时候?

以及同样被装饰的 List< webelement > 的程序是什么?它会在您引用列表时触发,还是在您引用该列表中的元素时触发?

我之所以问,是因为我在某些情况下会遇到过时的元素异常,我想知道如何处理它们。