![](/img/trans.png)
[英]How to pass value from onOptionsItemSelected method of one class to another class
[英]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 并将值存储在会话中并重定向到下一页,以便最终您可以对所有先前的详细信息执行操作。
这里没有明确的答案,
你真的需要传递这个值吗? 因为您正在编写测试用例,所以您必须知道您将在付款详细信息页面上选择什么值,因此创建不同的方法,例如
Personal_Details_CreditCard(应填写personalDetail并选择CreditCard选项)、Personal_Details_DebitCard(应填写personalDetail并选择DebitCard选项)、CreditCardPayment(应执行信用卡付款步骤付款页面)、DebitCardPayment(应在付款页面执行借记卡付款步骤)
并按要求的顺序调用这些方法。 就像如果您正在调用 Personal_Details_CreditCard 然后调用 CreditCardPayment 进行付款页面。
如果要保存状态变量,那么如果所有方法都是单个类的一部分,则可以在类级别使用实例变量。
您还可以从您的测试方法中传递不同的参数,如 Personal_Details(paymentType) 、 PaymentPage(PaymentType)
所以简而言之,您的问题没有直接的答案,这确实是一个设计问题,您应该根据需要选择合适的设计。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.