gpt4 book ai didi

java - 在这种情况下如何返回 WebElement

转载 作者:行者123 更新时间:2023-12-01 11:08:15 24 4
gpt4 key购买 nike

我想利用页面对象,以下是我正在查看的内容:

我创建了一个包“pageObjects”,并创建了一个类“HomePage”,其元素如下:

public class HomePage 
{
private static WebElement element=null;

public static WebElement txt_UserName(WebDriver driver)
{
element=driver.findElement(By.name("userName"));
return element;
}
}

在我的测试用例中,当我使用 HomePage.txt_UserName(driver).sendKeys("uday")让我们输入用户名“Uday”。这很完美。

但是我需要用类似的方法来实现上面的内容EnterValue("HomePage.txt_UserName","Uday")

public void enterValue(String strObjID,String strValue)
{
//How should i use the above parameter here?? Something like below should work
strObjID(driver).sendKeys(strValue);

}

最佳答案

根据您的评论,我认为您不应该编写处理所有类型输入字段的通用 cucumber 步骤定义。这使得阅读和理解您的功能文件变得非常困难。将 HTML ID 或 CSS 选择器写入 HTML 并不能满足 BDD,因为您首先编写需求,因此您无法知道您正在使用哪些 ID。看principles of BDD .

请记住,功能文件的目的是将作为用户故事编写的需求链接到您的测试代码。因此,请像编写用户故事一样编写功能文件。例如:

Given I loaded the home page
When I enter my username <username>
And I enter my password <password>
And I press the login in button
Then I should be redirected to <some url>

基于此,您应该实现 page object pattern彻底。这是一个例子:

public class HomePage {
private final WebElement usernameElement;
// declare more page elements here

public HomePage(WebDriver driver) {
usernameElement = driver.findElement(By.name("userName"));
// init more page elements here
}

public void enterUsername(String username) {
usernameElement.sendKeys(username)
}

// more handler here: e.g. public void enterPassword(String password) ...
}

在你的 cucumber 步骤定义中,你可以使用页面对象:

@Then("^I enter my username \"(.+)\"$")
public void I_enter_my_username(String username) {
homepage.enterUsername(username);
}

此模式可以很好地理解您的功能文件以及它们如何连接到您的测试代码。

关于java - 在这种情况下如何返回 WebElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32690505/

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