栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Selenium+JAVA淘宝登录、商品搜索、添加收货地址,提交订单、付款流程(UI)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Selenium+JAVA淘宝登录、商品搜索、添加收货地址,提交订单、付款流程(UI)

Selenium+JAVA淘宝登录、商品搜索、添加收货地址,提交订单、付款流程
package test;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.util.ArrayList;
import java.util.List;



public class UITaobao {
    public static void main(String[] args) throws Exception {
        String url = "https://www.taobao.com/";
        allProcess(url);
    }

    public static void allProcess(String url) throws Exception {
        //加载webdirver所在的路径。webdirver要与所用的chrome版本一致
        System.setProperty("webdirver.chrome.dirver", "D:\Tools\webdirveri\chromedriver.exe");
        //创建ChromeDiever对象
        ChromeDriver chromeDriver = new ChromeDriver();
        chromeDriver.get(url);//打开网页
        //默认进入淘宝主页,点击登录按钮,跳转登录界面
        chromeDriver.findElementByXPath("//*[@id="J_LoginInfoHd"]/a[1]");

        WebDriverWait wait = new WebDriverWait(chromeDriver, 10);
        //等待页面加载出登录按钮- 登录界面
        wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//*[@id="login-form"]/div[4]/button")));

        chromeDriver.findElementByXPath("//*[@id="fm-login-id"]").clear();//清除输入框的内容
        chromeDriver.findElementByXPath("//*[@id="fm-login-id"]").sendKeys("wwww");//输入用户名

        chromeDriver.findElementByXPath("//*[@id="fm-login-password"]").clear();
        chromeDriver.findElementByXPath("//*[@id="fm-login-password"]").sendKeys("12345");//输入密码

        //等待页面加载出主页面--淘宝网首页
        wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//*[@id="J_SiteNavBdR"]/li[1]/div/a")));

        //搜索框输入搜索内容
        chromeDriver.findElementByXPath("//*[@id="J_search_key"]").sendKeys("水杯");
        chromeDriver.findElementByXPath("//*[@id="J_searchForm"]/input").click();//搜索

        //获取当前页面句柄
        String nowWindows = chromeDriver.getWindowHandle();
        List allWindows = new ArrayList<>();
        int j = 0;
        for (int i = 0; i < allWindows.size(); i++) {
            if (allWindows.get(i).equals(nowWindows)) {
                j = i;
                break;
            }
        }
        //点击搜索后,加载新窗口,跳转到新窗口
        chromeDriver.switchTo().window(allWindows.get(j));
        chromeDriver.findElementByXPath("//*[@id="mx_5"]/ul/li[1]/a/div[1]/span").click();//点击商品
        Thread.sleep(2);
        //切换窗口,跳转商品详情页
        for (int i = 0; i < allWindows.size(); i++) {
            if (allWindows.get(i).equals(nowWindows)) {
                j = i;
                break;
            }
        }
        //点击搜索后,加载新窗口,跳转到新窗口
        chromeDriver.switchTo().window(allWindows.get(j));
        chromeDriver.findElementByXPath("//*[@id="mx_9"]/div/div/a/div[3]/p").click();//点击商品名称,进入商品也
        Thread.sleep(2);
        //选择商品颜色
        chromeDriver.findElementByXPath("//*[@id="J_Detailmeta"]/div[1]/div[1]/div/div[4]/div/div/dl[1]/dd/ul/li[1]/a/span")
                .click();
        //选择输入商品数量
        chromeDriver.findElementByXPath("//*[@id="J_Amount"]/span[1]/input").clear();
        chromeDriver.findElementByXPath("//*[@id="J_Amount"]/span[1]/input").sendKeys("2");
        //确认
        chromeDriver.findElementByXPath("//*[@id="J_linkBuy"]/span").click();

        //添加收货地址
        chromeDriver.findElementByXPath("//*[@id="addressPC_1"]/div[5]/button").click();
        //添加收获地址的弹框为div弹框,与普通的元素定位一样
        //等待弹框显示完全
        wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//*[@id="dialog-title-kt1lt9ab"]")));

        //选择收货地址信息,收货地址为下拉框,用CSSSelector定位
        //省信息
        chromeDriver.findElementByCssSelector
                ("#cndzkEntrance > div:nth-child(2) > div > div > div.cndzk-entrance-division-box > ul.cndzk-entrance-division-box-content > div > li:nth-child(1)")
                .click();
        //市信息
        chromeDriver.findElementByCssSelector
                ("#cndzkEntrance > div:nth-child(2) > div > div > div.cndzk-entrance-division-box > ul.cndzk-entrance-division-box-content > div > li:nth-child(1)")
                .click();
        //区信息
        chromeDriver.findElementByCssSelector("#cndzkEntrance > div:nth-child(2) > div > div > div.cndzk-entrance-division-box > ul.cndzk-entrance-division-box-content > div > li:nth-child(1)")
                .click();
        //街道信息
        chromeDriver.findElementByCssSelector("#cndzkEntrance > div:nth-child(2) > div > div > div.cndzk-entrance-division-box > ul.cndzk-entrance-division-box-content > div > li:nth-child(1)")
                .click();
        //输入详细地址信息
        chromeDriver.findElementByXPath("//*[@id="cndzkEntrance"]/div[4]/div/div/textarea").clear();
        chromeDriver.findElementByXPath("//*[@id="cndzkEntrance"]/div[4]/div/div/textarea").sendKeys("xxxxx");
        //输入收货人姓名
        chromeDriver.findElementByXPath("//*[@id="cndzkEntrance"]/div[4]/div/div/textarea").clear();
        chromeDriver.findElementByXPath("//*[@id="cndzkEntrance"]/div[4]/div/div/textarea").sendKeys("XXX");
        //输入手机号
        chromeDriver.findElementByXPath("//*[@id="mobile"]").clear();
        chromeDriver.findElementByXPath("//*[@id="mobile"]").sendKeys("1903083");
        //保存收获地址
        chromeDriver.findElementByXPath("//*[@id="myForm"]/div[5]/div[2]/button/span").click();
        //选择收货地址
        chromeDriver.findElementByXPath("//*[@id="addressPC_1"]/div[3]/div[1]/div[1]").click();
        //提交订单
        //提交订单信息在浏览器中未展示,需要下拉页面,用cssSelector定位
        chromeDriver.findElementByCssSelector("#submitOrderPC_1 > div > a").click();
        //等待跳转支付页面
        wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//*[@id="header"]/div/div[1]/span[1]/s")));
        //输入支付密码
        WebElement alipayPasswdFream = chromeDriver.findElementByXPath("//*[@id="payPassword_container"]/div");
        //将密码输入框下的元素放入list中
        List ilist = alipayPasswdFream.findElements(By.tagName("i"));
        for (int i = 0; i < ilist.size(); i++) {
            WebElement iElement = ilist.get(i);
            iElement.sendKeys("1");
        }
        //确认付款
        chromeDriver.findElementByXPath("//*[@id="J_authSubmit"]").click();
        //关闭浏览器
        chromeDriver.close();
    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756272.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号