python—web自动化(1)—元素定位方法的基本使用(添加商品,添加地址,小案例)

  • 学习目的:掌握元素定位方法的使用
  • 案例需求:登录-添加商品-添加送货地址
  • 知识点:
    1. 隐式等待:webdriver.implicitly_wait(5)--这是一种智能的等待,表示每个页面加载时最大等待时间5s,
    2. 窗口最大化:webdriver.maximize_window()
    3. 窗口切换:
      1. 找出新窗口名字:new_window= webdriver.window_handles[1] --括号里填窗户索引
      2. 切换新窗口:webdriver.switch_to.window(new_window)
    4. 下拉框选择:(下面案例代码里查看)
    5. find_elements: 加s后能查询到所有符合条件的元素,通过索引取用

 

  • 账号密码-网页元素:
    • 检查输入框页面元素,通过id进行定位,send_keys('输入内容')
      • # 输入账号密码
        # *********************【第一种元素定位方法:id】*********************
        shop_wdr.find_element_by_id('username').send_keys('cs001')
        shop_wdr.find_element_by_id('password').send_keys('123456')

 

  • 登录按钮-网页元素:
    • 检查登录按钮页面元素,通过class定位,click()点击
      • # *********************【第二种元素定位方法:class_name】*********************
        # 点击登录按钮
        shop_wdr.find_element_by_class_name('login_btn').click()
  • 搜索功能-网页元素:
    • 检查输入框的页面元素,通过name定位
      • # *********************【第三种元素定位方法:name】*********************
        # 搜索商品
        shop_wdr.find_element_by_name('keyword').send_keys('连裤袜')
        shop_wdr.find_element_by_class_name('btn1').click()
  • 搜索结果-网页元素:
    • 检查商品的页面元素,发现有a标签,通过name定位
      • # *********************【第四种元素定位方法:link_text】*********************
        # 选择商品,进入详情页面
        shop_wdr.find_element_by_link_text('绫天生丝滑「云」12D薄款丝滑黑丝连裤袜').click()
  • 商品详情-网页元素:
    • 跳转到商品详情页后,浏览器产生了新页面,所以需要切换页面
      • # 需要指定操作的页面窗口
        new_windows = shop_wdr.window_handles[1]
        # 页面窗口切换
        shop_wdr.switch_to.window(new_windows)
        
        # *********************【第五种元素定位方法:xpath】*********************
        # 加入购物车
        shop_wdr.find_element_by_xpath('//*[@id="joinCarButton"]').click()
  • 结算页面-网页元素:
    • class里有shopCar_btn_03和f1,使用css_selector可以把两个class name合并进行定位,用.号连接
      • # 去购物车结算
        shop_wdr.find_element_by_class_name('shopCar_T_span3').click()
        # *********************【第六种元素定位方法:css_selector】*********************
        shop_wdr.find_element_by_css_selector('.shopCar_btn_03.fl').click()

 

  • 确认地址-网页元素:
    • # 填写送货地址
      shop_wdr.find_element_by_class_name('add-address').click()

       

 

  • 填写地址-网页元素:
    • 下拉框-处理方式***:
      • 省:
        • # 下拉选项框1-省
          # 通过id找到省,但这是普通网页元素,click和send_keys都选不到下拉框里的值
          sheng = shop_wdr.find_element_by_id('add-new-area-select')
          # 导入(from selenium.webdriver.support.select import Select)把省这个普通网页元素,强制转换成下拉框元素
          # 下拉框元素里,通过可见的文本选择方法,选择对应选项
          Select(sheng).select_by_visible_text('江苏省')
        • 网页元素:
        • 代码:
        • # 下拉选项框2-市
          '''id="linkagesel_475448后面的数值会变动,class_name的值和下拉框1的值一样,
          此时用find_elements(找到所有add-new-area-select后通过[1]取第二个元素)'''
          shi = shop_wdr.find_elements_by_class_name('add-new-area-select')[1]
          # 把shi强制转换成下拉框元素
          Select(shi).select_by_visible_text('无锡市')
        • 网页元素:
        • 代码:
        • # 下拉选择框3-区
          '''id="linkagesel_129166动态变化,整个页面select标签只有3个,
          此时用find_elements_by_tag_name(找到所有select后通过[2]取第三个元素)
          '''
          qu = shop_wdr.find_elements_by_tag_name('select')[2]
          ## 把shi强制转换成下拉框元素
          Select(qu).select_by_visible_text('市辖区')
    • 最后把收款人,手机号,详细地址,邮编填写完,点击确认
      • 代码
      • # 填写名字
        shop_wdr.find_element_by_name('address[address_name]').send_keys('cs001')
        # 填写手机号
        shop_wdr.find_element_by_name('address[mobile]').send_keys('13700000001')
        
        # 填写详细地址
        shop_wdr.find_element_by_class_name('add-new-name-span-2').send_keys('阳光春天66号')
        # 填写邮编
        shop_wdr.find_element_by_name('address[zipcode]').send_keys('666666')
        
        #点击确认
        shop_wdr.find_element_by_class_name('aui_state_highlight').click()

         

    • 提交后的效果:
      •  

         

posted @ 2023-01-14 17:10  沐沂  阅读(213)  评论(0)    收藏  举报