Selenium订单提交流程问题汇总

1、业务流程

登录→搜索商品→选择商品并添加购物车→购物车结算,提交订单→我的订单校对信息

2、问题汇总

2-1 模糊搜索商品,元素定位用以下方法

prod = (By.XPATH, f'//div[contains(text(), "{prod_name}")]')

2-2 商品价格前后带空白字符和¥符号

def get_prod_price(self, driver, prod_name):
    locator = (By.XPATH, f'//a[contains(text(),"{prod_name}")]/parent::div/following-sibling::div[3]')
    # 获取价格文本信息
    text = self.get_text(driver, locator)
    # 去掉它的前后空白字符(空格+换行符)以及¥符号
    return text.strip()[1:]

2-3 购物车页面,商品的数量不可见,通过属性获取元素的显示值

def get_prod_num(self, driver, prod_name):
    locator = (By.XPATH, f'//a[contains(text(),"{prod_name}")]/parent::div/following-sibling::div[2]//input')
    # 获取它的value属性拿到元素显示的值
    return self.get_attribute(driver, locator, 'value')

2-4 如果我的订单和购物车页面价格不一致,可以选择提交订单页面的价格作为期望值,要注意的是先进入提交订单页面,再定位价格元素

# 订单提交页面
prod_price = SubmitOrderPage().get_pay_price(driver)    
# 先进入到订单界面再获取价格,否则会找不到元素报超时错误
SubmitOrderPage().click_submit_button(driver)

2-5 商品数量的预期值/实际值显示None,检查方法是否有返回值

# 我的订单页面
def get_prod_num(self, driver):
    # 返回商品数量
    return self.get_text(driver, self.prod_num)[1:]

# 购物车页面
def get_prod_num(self, driver, prod_name):
    locator = (By.XPATH, f'//a[contains(text(),"{prod_name}")]/parent::div/following-sibling::div[2]//input')
    # 返回商品数量
    return self.get_attribute(driver, locator, 'value')

猜你喜欢

转载自blog.csdn.net/sinat_37472649/article/details/143175490