在测试之间保留 Web 驱动程序

问题描述 投票:0回答:1
public class LogIntoapp {

    @Test
    public static void main() {
        
        
        Login();
        AddAccountData();
    }
        

在我的登录方法中,我有:

System.setProperty("webdriver.chrome.driver","C:/drivers/chromedriver.exe");
WebDriver driver = new ChromeDriver();

因此,当我调用 AddAccountData 时,我需要保留该驱动程序以继续导航。我不想在第二种方法中创建新的网络驱动器。希望我对这种方法没有完全偏离。

java selenium-webdriver persist
1个回答
2
投票

我真的建议您查找有关如何构建测试的页面对象模式,这将使您继续下去时更具可扩展性我建议类似:http://code.google.com/p /selenium/wiki/PageObjects 但是如果你用谷歌搜索这个名字,那么你会发现很多优秀的资源。

您可能想忽略我的建议,而只是让您的测试继续发挥作用。那么最简单的方法是让您的登录方法返回您创建的驱动程序。

public WebDriver Login(){
    //your current code here

    return driver;
}

那么在你的测试中你会:

WebDriver driver = Login();

AddAccountData(driver);

基本上您会将驱动程序传递给每个方法。

我真的会推荐我的第一种方法,虽然使用页面对象。

虽然我在这里还有其他一些值得注意的事情,但您的测试是 public static void main ,尽管这是应用程序的正常入口点,但这通常不是测试的结构,它应该只是一个 public void方法和名称不必是 main (事实上,如此称呼它会令人困惑)。

其次,Java 中的方法名称按照惯例以小写字母开头,遵循约定将帮助人们在代码变得更加复杂时更轻松地理解您的代码。

© www.soinside.com 2019 - 2024. All rights reserved.