问题标签 [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.
java - 页面对象工厂 - NullPointerException
对登录页面使用页面对象模型和页面分解,我在 LoginPage.java 中获取对象,而操作在 LoginScript.java 中。我在“Ele_UserNameEdit.clear();”行中得到一个 java.lang.NullPointerException 请帮助检查代码。谢谢。
这是我的 Loginpage.java :
这是我的 LoginScript.java :
java - 如何在页面对象模型上传递变量值
我正在使用页面对象模型创建我的项目,
要定义简单元素,最简单的定义是
并称之为:driver.findElement(loginEmailParse);
但是,当我们有带变量的条件时,
By.xpath("//input[@id='" + accountID + "']")
和
这里的“accountID”是可变的,
我们如何定义它?
selenium-webdriver - 无法在 Appium 中执行操作,因为未识别 PageFactory
我想启动并执行诸如在应用程序中输入用户名详细信息之类的操作,但由于错误,我的执行一次又一次失败
File.separator +"TodoistInputData.properties"); prop.load(输入);
==================================================== ============================================
错误来了
java - 无法在原始类型 void 上调用 sendKeys(String)
我是 selenium 的新手,我正在使用页面工厂实现数据驱动的框架工作并不断收到以下错误:
无法在原始类型 void 上调用 sendKeys(String)
尝试设置我的测试脚本时 - 用于以下内容:
String sEmail = ExcelUtil.getCellData (1,1);
loginpage.setEmail().sendKeys(sEmail);
这是我的java文件:
这是我的测试脚本-
selenium - 使用具有相同 selenium 测试的不同页面对象集
[这是与 SQA 交叉发布的 - https://sqa.stackexchange.com/questions/35081/using-different-sets-of-page-objects-with-the-same-selenium-tests]
我正在为一组类似的网站开发硒测试套件。测试套件将针对每个站点单独执行,并且套件中的测试适用于所有网站。
这些网站建立在相同的底层平台上,但是具有不同的主题/方案,因此这些网站的页面对象需要不同。这不是一个或两个选择器不同的情况,而是大多数选择器不同 - 但结构的其余部分是相同的。
我可以轻松地创建两组(或三组,或其他)页面对象,但是我不知道如何告诉测试执行器(在我的例子中是 Cucumber cli)要使用哪些页面对象。
我能想到的最接近的方法是使用具有公共基类的不同包名称,然后使用从公共基类扩展的各个页面。另一种可能性是将所有选择器提取到属性文件中,并根据输入参数加载一个或另一个,但这会阻止我使用 PageFactory。我也可以,可能,在不同的源集中创建单独的页面对象集,然后根据我的需要编译一个或另一个 - 但是,我可以再次想到理论,而不是执行。
那么,什么是正确的方法以及如何实现呢?如果重要,项目是使用 gradle 构建的。
java - Selenium Webdriver - 在pagefactory中实现链式webdriver findelement
我有一个 Webelements 列表,其中选择了一个随机元素。现在有一个随机的 webelement,我需要找到其中的所有子元素。我如何在 pagefactory 中实现这一点。
在硒中,这是有效的:
在页面工厂中,我尝试过:
坚持如何使用页面工厂注释在随机元素中获取标题。
我知道这会起作用:
当我在整个项目中使用页面工厂注释时,有没有办法实现同样的效果。
selenium - 在 TestNG XML 文件中实现范围报告时出现 java.lang.ClassCastException 错误
我收到一条错误消息,告诉 java.lang.ClassCastException:当将 TestNG XML 文件作为测试套件运行时,[My extent report class name] cannot be cast to org.testng.ITestNGListener。
我已经使用 MAVEN 和 TestNG 的页面工厂设计技术自动化了一个网页,其中包含在一个包中初始化的 6 个页面类对象。我还在另一个包中编写了范围报告侦听器类。除此之外,我在另一个包中还有一个基类,它是所有 6 个页面对象初始化类的超类。我已经为 3 个页面类编写了测试用例,基类也是这些类的超类。
我通过添加所有 3 页测试用例并添加范围报告类作为此 XML 文件的侦听器来生成 TestNG XML 文件。
我将通过从下面的每个包中包含一个类来展示我的框架的结构。
页面对象初始化包-登录类
基础包 - 测试基类
测试用例包——登录页面测试类
Test Util 包 - 范围报告侦听器类
TestNG XML 文件
java - Selenium 中的 PageFactory 是什么以及 PageFactory.initElements(driver, this) 语句的用途是什么
请您解释一下 Selenium 中的 PageFactory 是什么以及PageFactory.initElements(driver, this)
语句会发生什么,还请解释一下 b/wBy
和@FindBy
.
提前致谢。
selenium-webdriver - 为什么我应该在页面对象类中使用@FindBy 而不是 driver.findElement()
我正在创建一个页面对象框架,同时了解它的概念,我知道页面工厂(@FindBy)与页面对象结合使用。但是,当我可以在 Page Object 类中将 driver.findElement 与我的定位器一起使用时,我无法理解为什么需要使用 @FindBy。例如 :
//@FindBy 代码
//带有 driver.findElement 的代码
这里的两个代码之间有什么区别,因为这两个代码基本上都在做同样的事情?
java - 将页面工厂与页面对象模式结合起来是一种反模式吗
正如标题所说。我有一段代码,其中这种技术是 IMO 合理的。
我有一个带有table的页面,每一行都包含产品名称,其中 id 取决于行号:
我正在查找带有 PageFactory 注释的行:
只有这样我才知道页面上有多少产品,所以我要找到每个产品:
quietFindElement 在 Selenium 中搜索元素,捕获 NoSuchElementException 和 TimeoutException,如果它们被抛出则返回 null。
这种溶液干净吗?