我对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
}
}
}
答案 0 :(得分:0)
您有两种选择:
1.Pass值作为方法参数 2.创建类属性,并在所有类方法中使用它。
你试过吗?
答案 1 :(得分:0)
完成详细信息重定向到servlet并在会话中存储值并重定向到下一页后,最后您可以对以前的所有细节执行操作。
答案 2 :(得分:0)
这里没有明确的答案,
你真的需要传递这个值吗? 因为您正在编写测试用例,所以您必须知道要在付款详细信息页面上选择的值,因此请创建不同的方法,例如
Personal_Details_CreditCard(应填写personalDetail并选择CreditCard Option), Personal_Details_DebitCard(应填写personalDetail和Select DebitCard选项), CreditCardPayment(应执行信用卡付款步骤付款页面),DebitCardPayment(应在付款页面上执行debitCard付款步骤)
并按要求的顺序调用这些方法。比如你打电话给Personal_Details_CreditCard然后拨打CreditCardPayment付款页面。
如果要保存状态变量,那么如果所有方法都是单个类的一部分,则可以在类级别使用实例变量。
您还可以从测试方法传递不同的参数 例如Personal_Details(paymentType),PaymentPage(PaymentType)
因此,简而言之,对您的问题没有直接的答案,这确实是一个设计问题,您应该根据需要选择合适的设计。