selenium-电商Web前台购物流程自动化

博客介绍了Python自动化测试中遇到的页面问题及解决方法。包括出现分页时切换定位页面,通过driver.window_handles定位新窗口并切换;界面有下拉框定位不到元素时,用Select类转换;页面打开慢且不稳定时,使用time.sleep加延时。
import time
from selenium import webdriver
from selenium.webdriver.support.select import Select

# 1.登录
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.maximize_window()

driver.get("http://172.0.0.1/index.php?m=user&c=public&a=login")
driver.find_element_by_id("username").send_keys("yaya")
driver.find_element_by_id("password").send_keys("123456")
driver.find_element_by_class_name("login_btn").click()

time.sleep(3)

# 2.点击“进入商城购物”
driver.find_element_by_link_text("进入商城购物").click()

# 3.搜索“iphone”
driver.find_element_by_name("keyword").send_keys("iphone")
driver.find_element_by_class_name("btn1").click()

# 4.点击商品图片
driver.find_element_by_xpath("/html/body/div[3]/div[2]/div[3]/div[1]/div[1]/a/img").click()

# 5、切换窗口:
# 5.1.找到新窗口的名字
new_window = driver.window_handles[-1]
# 5.2.切换到新窗口、
driver.switch_to.window(new_window)

# 6.把选择的商品加入购物车
driver.find_element_by_id("joinCarButton").click()

#7,去购物车结算
driver.find_element_by_class_name("shopCar_T_span3").click()
# 点击“结算”
driver.find_element_by_css_selector(".shopCar_btn_03.fl").click()

# 8.添加新地址
driver.find_element_by_class_name("add-address").click()

# 9.收货人姓名
driver.find_element_by_name("address[address_name]").send_keys("yaya")

# 10.输入手机号
driver.find_element_by_name("address[mobile]").send_keys("13612563478")

# 11.选择收货地区--省
sheng = driver.find_element_by_id("add-new-area-select")
Select(sheng).select_by_visible_text("广东省")

# 12.选择收货地区--市
shi = driver.find_elements_by_class_name("add-new-area-select")[1]
Select(shi).select_by_visible_text("深圳市")

# 13.选择--地区
qu = driver.find_elements_by_tag_name("select")[2]
Select(qu).select_by_visible_text("宝安区")

#14输入街道
driver.find_element_by_name('address[address]').send_keys('大街1号')

#15.输入邮编
driver.find_element_by_name('address[zipcode]').send_keys('721405')

#16.点击确定
driver.find_element_by_xpath("/html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[3]/td/div/button[1]").click()

  

 

遇见问题:

1、出现分页,当出现分页时需要把定位的页面进行切换,具体方法:

# 5.1.找到新窗口的名字,new_window是一个列表,[-1]是定位到最后一个页签
new_window = driver.window_handles[-1]
# 5.2.切换到新窗口、
driver.switch_to.window(new_window)

2、出现界面有下拉框进行选择时,此时定位不到元素,需要进行转换:

from selenium.webdriver.support.select import Select

sheng = driver.find_element_by_id("add-new-area-select")
Select(sheng).select_by_visible_text("广东省")

3、当页面打开较慢,存在不稳定性时,需要加延时

import time

time.sleep(3)

 

转载于:https://www.cnblogs.com/duyaya/p/10957151.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值