繁体   English   中英

如何将值从一种方法传递到另一种方法

[英]How to pass the value from one method to another method

我对 Java selenium webdriver 有疑问。 例如:在第 1 页(个人详细信息页面)我正在填写所有个人详细信息并使用复选框选择付款方式(如信用卡或借记卡)。 第 2 页(派送):填写派送地址详细信息。 在第 3 页(付款页面):根据第 1 页的选择,应自动选择付款。

我创建了一个包含此页面方法的类文件。 但我不知道如何将值从一种方法传递到另一种方法。

请帮我解决这个问题。

//Class File

package logintest;

//import org.openqa.selenium.By;

public class mobclas 
{
  private static WebElement element=null;

  public static class mobile
  {
    public static WebElement Personal_Details(WebDriver driver)
    {
       //Code 
       driver.findElement(By.id("Name")).sendKeys("Test");  
       driver.findElement(By.id("Mobile_No")).sendKeys("963258741");  
       driver.findElement(By.id("Mail_id")).sendKeys("test@test.com");
       //Payment method selection
       if checkbox true, we have to pass the value to "PaymentPage method"
    }

    public static WebElement DispatchDetails(WebDriver driver)
    {
       //Code
    }
    public static WebElement paymentpage(WebDriver driver)
    {
       //Value
       if true Credit card payment
       else Debit card payment
    }
  }
}

您有两个选择:

1.将值作为方法参数传递 2.创建类属性,并在所有类方法中使用它的值。

你试过吗?

完成详细信息后重定向到 servlet 并将值存储在会话中并重定向到下一页,以便最终您可以对所有先前的详细信息执行操作。

这里没有明确的答案,

  1. 你真的需要传递这个值吗? 因为您正在编写测试用例,所以您必须知道您将在付款详细信息页面上选择什么值,因此创建不同的方法,例如

    Personal_Details_CreditCard(应填写personalDetail并选择CreditCard选项)、Personal_Details_DebitCard(应填写personalDetail并选择DebitCard选项)、CreditCardPayment(应执行信用卡付款步骤付款页面)、DebitCardPayment(应在付款页面执行借记卡付款步骤)

    并按要求的顺序调用这些方法。 就像如果您正在调用 Personal_Details_CreditCard 然后调用 CreditCardPayment 进行付款页面。

  2. 如果要保存状态变量,那么如果所有方法都是单个类的一部分,则可以在类级别使用实例变量。

  3. 您还可以从您的测试方法中传递不同的参数,如 Personal_Details(paymentType) 、 PaymentPage(PaymentType)

所以简而言之,您的问题没有直接的答案,这确实是一个设计问题,您应该根据需要选择合适的设计。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM