首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium Webdriver函数连续性

Selenium Webdriver函数连续性
EN

Stack Overflow用户
提问于 2018-07-30 21:35:47
回答 2查看 77关注 0票数 1

所以我有下面的java代码和selenium webdrive代码。在AddItems函数之前,代码会按预期工作。它不工作,我不能让它继续从登录功能的工作。我试着在main中调用这两个函数,我试着在登录中调用一个AddItems。我不明白我应该如何将这两个过程联系起来,这样一个过程才能继续另一个过程。我尝试了我在这里看到的:https://www.youtube.com/watch?v=ph3NJm4Z7m4&t=4472s,在1:02:44左右。

请帮助我理解函数如何使用相同的"test“并继续函数。

代码语言:javascript
复制
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();

    }

}
EN

回答 2

Stack Overflow用户

发布于 2018-07-31 15:17:17

请使用PageObject并从那里添加所有操作监听器:

代码语言:javascript
复制
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只使用隐式等待或显式等待

票数 2
EN

Stack Overflow用户

发布于 2018-07-30 21:51:06

我已经自己修好了。

我已经从登录函数中删除了“new = WebDriver ChromeDriver();”,并将其作为一个全局变量,与上面所写的完全相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51595230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档