IndexPage.java 3.68 KB
package com.buyer.pageObject;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

import com.essa.framework.BasePage;
import com.essa.framework.Model;

/**
 * 采购商首页
 * @author Administrator
 *
 */
public class IndexPage extends BasePage {
	public IndexPage(WebDriver driver) {
		super(driver);
	}
	/*
	 * 元素定位
	 */
	//登录-sign in
	@FindBy (xpath ="//*[@id='SignIn']/a")
	WebElement signIn;
	
	//注册-register
	@FindBy (xpath ="//*[@class='u-login']/a")
	WebElement register;
	
	//关键字输入框
	@FindBy (xpath ="//*[@class='search-tx']/input")
	WebElement searchText;
	
	//查询按钮
	@FindBy (xpath ="//*[@class='btn btn-primary search-btn']")
	WebElement searchButton;
	
	//绑定手机弹窗-关闭按钮
	@FindBy (xpath ="//*[contains(@class,'layui-layer-close1')]")
	WebElement closed;
	
	//右上角购物车
	@FindBy (xpath ="//*[@id='miniCart']")
	WebElement minicart;
	
	/*
	 * 页面方法
	 */
	/**
	 * 进入登录页面
	 * @return BuyerLoginPage
	 */ 
	public BuyerLoginPage toLoginPage() {
		click(signIn);
		return new BuyerLoginPage(driver);
	}
	
	/**
	 * 进入注册页面
	 * @return RegisterPage
	 */
	public RegisterPage toRegisterPage() {
		click(register);
		return new RegisterPage(driver);
	}
	
	/**
	 * 进入购物车
	 * @return ShoppingCartPage
	 */
	public ShoppingCartPage toShoppingCartPage() {
		if (isVisibility(By.xpath("//*[@id='bind-phone']"))) {
			forceWait(1000);
			click(closed);
		}
		click(minicart);
		return new ShoppingCartPage(driver);
	}
	/**
	 * 关键字搜索商品
	 * @return KeywordResultPage
	 */
	public KeywordResultPage keywordSearch() {
		//判断是否绑定手机
		if (isVisibility(By.xpath("//*[@id='bind-phone']"))) {
			click(closed);
		}
		//如果是非活动
//		if (Model.getIsactivity()==0 &&(Model.getSkuNo().equals("选填,勿填活动商品")||Model.getSkuNo().equals(""))) {
		if (Model.getIsactivity()==0 &&(("选填,勿填活动商品").equals(Model.getSkuNo())||("").equals(Model.getSkuNo()))) {
			//判断是否自定义输入商品编号
			String sql = "SELECT s.id,s.`no` from prd_category c LEFT JOIN prd_goods g on c.id = g.category_id LEFT JOIN prd_goods_sku s on s.goods_id = g.id where find_in_set(5,REPLACE(c.path,'.',',')) AND s.`no` > 200120000\n" +
					"AND s.id NOT IN (SELECT g.sku_id FROM sale_group_buy g) AND s.id NOT IN (SELECT t.sku_id FROM sale_shopping_cart t) AND s.src = 1 AND s.`status` = 2 AND s.is_stop_product = 0 AND s.is_delete = 0 \n" +
					"AND g.is_category_error = 0 AND G.is_attribute_error = 0 AND G.is_option_error = 0 AND G.is_spec_error = 0 limit 1;";
			Model.setSkuNo(DBSqlSearch(sql, "no"));
		}else if (Model.getIsactivity()==1 &&(("选填,勿填非活动商品").equals(Model.getSkuNo())||("").equals(Model.getSkuNo()))) {
			//活动商品	
			String sql = "SELECT s.id,s.`no` from prd_category c LEFT JOIN prd_goods g on c.id = g.category_id LEFT JOIN prd_goods_sku s on s.goods_id = g.id LEFT JOIN sale_group_buy a on a.sku_id = s.id \n" +
					"where s.`no` > 200000000 AND s.id NOT IN (SELECT t.sku_id FROM sale_shopping_cart t) AND a.`status` = 20 and s.src = 1 AND g.is_category_error = 0 AND G.is_attribute_error = 0 AND G.is_option_error = 0 AND G.is_spec_error = 0 limit 1;";
			Model.setSkuNo(DBSqlSearch(sql, "no"));
		}
//		System.out.println(Model.getSkuNo());
		sendKeys(searchText, Model.getSkuNo());
		click(searchButton);
		return new KeywordResultPage(driver);
	}
	
	/**
	 * 断言是否注册成功,根据是否有绑定手机号的弹窗来判断
	 * @return boolean
	 */
	public boolean isSucceed() {
		return isVisibility(By.xpath("//*[contains(@class,'layui-layer-close1')]"));
	}
}