gpt4 book ai didi

java - 将元素名称传递给另一个类方法

转载 作者:行者123 更新时间:2023-12-01 18:28:31 25 4
gpt4 key购买 nike

我有一个功能文件,其中将选项卡名称(例如“操作”、“工作订单”、“通知”选项卡)传递给定义了选项卡元素及其操作的 pageobjects 类。如果该选项卡名称不可见,我们必须单击箭头按钮并单击该项目。我将该项目命名为 tabNameItem。不清楚如何在此方法中添加选项卡项目名称。以下方法引发错误“然后从选项卡用户单击“accountWorkOrdersTab”# AccountsPageSteps.from_the_tabs_User_clicks_on_tab(WebElement) cucumber.runtime.CucumberException:不知道如何将“accountWorkOrdersTab”转换为 org.openqa.selenium.WebElement。尝试编写自己的转换器:“调用方式:

@Then("^from the tabs User clicks on \"([^\"]*)\"$")
public void from_the_tabs_User_clicks_on_tab(WebElement tabname) throws Throwable {
serviceCloudAccountsPageObject.openAccountsTabs(tabname);
}

Action 类:

@FindBy(xpath = "//a[@text()='Work Order')]")
public WebElement accountWorkOrdersTab;

@FindBy(xpath = "//span[contains(.,'Work Order')]")
public WebElement accountWorkOrdersTabItem;

public void openAccountsTabs(WebElement tabName) {

    if(verificationHelper.isDisplayed(tabName)){
tabName.click();
System.out.println(tabName.getText() +" tab displayed & is clicked");
}
else {

moreTab.click();
accountWorkOrdersTabItem.click();
System.out.println("WorkOrder tab not displayed & is clicked from More tab");

}
}

}

最佳答案

不要传递功能文件中的 WebElement,只需传递字符串。from_the_tabs_User_clicks_on_tab(字符串选项卡名称)

根据此字符串值,您可以使用 case 语句并返回 webElement。

public WebElement returnElement(String tabname) {
WebElement returnElement = null;


switch (elementName) {
case "tabname1":
returnElement = driver.findElement(By.xpath("//a[@text()='Work Order')]"));
break;
case "tabname2":
returnElement = driver.findElement(By.xpath("//span[contains(.,'Wor Order')]"));;
break;
default:
break;
}

return returnElement;
}

使用上面的代码,您应该获得所需的 Web 元素,并且可以在返回元素上执行操作。

希望你明白了。

关于java - 将元素名称传递给另一个类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60198599/

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