Selenium Webdriver功能连续性

时间:2018-07-30 13:35:47

标签: java selenium testing automation webdriver

所以我有以下Java代码和Selenium WebDrive代码。该代码将按预期工作,直到AddItems函数为止。它不起作用,我无法使其从登录功能继续进行工作。我试过在主调用这两个函数,我试过在登录名中调用一个AddItems。我不明白我应该如何链接这两个过程,所以一个继续另一个。我已经尝试过在这里看到的内容:https://www.youtube.com/watch?v=ph3NJm4Z7m4&t=4472s,时间为1:02:44。

请帮助我了解该功能如何使用相同的“测试”并继续使用该功能。

package TestEmagShoppingCart;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class ShoppingCart {

    WebDriver test;

    public void Login() throws InterruptedException

    {
        System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
        WebDriver test = new ChromeDriver();
        test.get("http://www.emag.ro");
        test.manage().window().maximize();
        //test.manage().deleteAllCookies();
        //test.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        //test.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);

        String title = test.getTitle();
        System.out.println("Titlul paginii este: "+ title);

        test.findElement(By.xpath("/html/body/div[3]/nav[1]/div/div/div[3]/div/div[2]/a/span")).click();
        test.findElement(By.id("email")).sendKeys("anghelalex1994@gmail.com");
        Thread.sleep(1000);
        test.findElement(By.xpath("/html/body/form/div[4]/div/button")).click();
        Thread.sleep(1000);
        test.findElement(By.id("password")).sendKeys("alex21");
        test.findElement(By.xpath("/html/body/form/div[4]/div/button")).click();
        //test.findElement(By.xpath("/html[1]/body[1]/div[3]/div[1]/div[1]/div[1]/ul[1]/li[5]/a[1]")).click();
        //AddItems();
    }

    public void AddItems()
    {

        test.findElement(By.xpath("/html[1]/body[1]/div[3]/div[1]/div[1]/div[1]/ul[1]/li[5]/a[1]")).click();
    }

    public static void main(String[] args) throws InterruptedException {

        ShoppingCart cart = new ShoppingCart();
        cart.Login();
        cart.AddItems();

    }

}

2 个答案:

答案 0 :(得分:2)

请使用PageObject并从此处添加所有动作侦听器:

public class EmagPageObject {
    private WebDriver driver;

    public EmagPageObject(WebDriver driver) {
        this.driver = driver;
    }

    public EmagPageObject loginToApp(String user, String password) {
        // Your code
        return  this;
    }

    public EmagPageObject AddItems() {
        // Your code
        return  this;
    }

}

请勿使用thread.sleep,仅使用隐式等待或显式等待

答案 1 :(得分:1)

我自己修复了。

我已删除“ WebDriver测试=新的ChromeDriver();”从登录函数中输入,并完全按照上面的说明将其作为全局变量。