如何将值从一个方法传递给另一个方法

时间:2015-06-13 12:46:05

标签: java selenium selenium-webdriver

我对Java selenium webdriver有疑问。例如:在第1页(个人详细信息页面)我将填写所有个人详细信息并使用复选框选择付款方式(如信用卡或借记卡)。 在第2页(Dispatch):填写发货地址详细信息。 在第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
    }
  }
}

3 个答案:

答案 0 :(得分:0)

您有两种选择:

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

你试过吗?

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这里没有明确的答案,

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

    Personal_Details_CreditCard(应填写personalDetail并选择CreditCard Option), Personal_Details_DebitCard(应填写personalDetail和Select DebitCard选项), CreditCardPayment(应执行信用卡付款步骤付款页面),DebitCardPayment(应在付款页面上执行debitCard付款步骤)

    并按要求的顺序调用这些方法。比如你打电话给Personal_Details_CreditCard然后拨打CreditCardPayment付款页面。

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

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

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