• webdriver实操


    from selenium import webdriver
    from time import sleep
    from selenium.webdriver.support.ui import WebDriverWait
    
    '''
    1.了解流程运行:
        登录--搜索商品--进入商品详情--添加商品属性--添加购物车--购物车检查
    2.了解实际编写时注意的内容
    '''
        # 初始设置
    # 创建Chromeoptions对象
    options=webdriver.ChromeOptions()
    # 窗体最大化
    options.add_argument('start-maximized')
    # # 无头模式:启动浏览器进程,但不会显示出来
    # options.add_argument('--headless')
    # 创建Chrome对象
    driver=webdriver.Chrome(options=options)
    # 设置隐式等待,作用于整个driver
    driver.implicitly_wait(10)
    # 生成显示等待对象
    wait=WebDriverWait(driver,10,0.5)
    
        # 操作流程
    # 访问url
    driver.get('http://39.98.138.157/shopxo/index.php')
    # 登录流程
    driver.find_element_by_xpath('//a[text()="登录"]').click()
    driver.find_element_by_name("accounts").send_keys('666666')
    driver.find_element_by_name("pwd").send_keys('111111')
    driver.find_element_by_xpath(
        '/html/body/div[4]/div/div[2]/div[2]/form/div[3]/button').click()
    # 判断登录是否成功
    wait.until(lambda el:driver.find_element_by_xpath('//a[text()="退出"]'),message='登录失败')
    
            # try:
            # # 显示等待,until成功则不输出message的信息,until失败则输出message
            # #     WebDriverWait(driver, 10, 0.5).until
            #     wait.until(
            #         lambda el:driver.find_element_by_xpath(
            #             '//a[text()="退出"]'),message='登录失败'
            #     )
            # except Exception as e:          #抛出异常
            #     print('登录失败,信息不正确:'.format(e))
    
    # 搜索商品
    driver.find_element_by_name('wd').send_keys('手机')
    driver.find_element_by_id('ai-topsearch').click()
    # 进入商品详情
    sleep(3)
    # driver.find_element_by_xpath('//p[contains(text(),"iPhone 6 Plus ")]').click()
            # driver.find_element_by_xpath(
            #     '/html/body/div[4]/div/ul/li[1]/div/a/img').click()
    
    # 判断进入商品详情是否成功
    cellphone = wait.until(lambda el:driver.find_element_by_xpath(
        '//p[contains(text(),"iPhone 6 Plus ")]'))
    name = cellphone.text
    print(name)
    cellphone.click()
    # 切换句柄
    handles=driver.window_handles
    # print(handles)
    # 关闭之前的句柄页
    driver.close()
    #切换页面就是切换句柄:切换handles的时候,尽可能保障最低只有两个页面
    driver.switch_to.window(handles[1])
    
    # 添加商品属性
    # wait.until(lambda el:driver.find_element_by_xpath('//*[@data-value="套餐一"]')).click()
    # wait.until(lambda el:driver.find_element_by_xpath('//*[@data-value="金色"]')).click()
    # wait.until(lambda el:driver.find_element_by_xpath('//*[@data-value="64G"]')).click()
    sleep(5)
    driver.find_element_by_xpath('//*[@data-value="套餐一"]').click()
    sleep(2)
    driver.find_element_by_xpath('//*[@data-value="金色"]').click()
    sleep(2)
    driver.find_element_by_xpath('//*[@data-value="64G"]').click()
    sleep(2)
    # driver.find_element_by_id('text_box').clear()
    driver.find_element_by_xpath('//*[@type="number"]').clear()
    driver.find_element_by_xpath('//*[@type="number"]').send_keys(5)
    # driver.find_element_by_id('text_box').send_keys('5')
    # 加入购物车
    sleep(2)
    driver.find_element_by_xpath(
        '//*[text()="加入购物车"]').click()
    # 检查是否加入成功
    text=wait.until(lambda el:driver.find_element_by_xpath('//*[text()="加入成功"]')).text
    print(text)
    # 进入检查购物车
    driver.find_element_by_xpath('//*[text()="购物车"]').click()
    # 检查商品是否存在于购物车中
    sleep(5)
    # name1 = driver.find_element_by_xpath('//*[contains(text(),"iPhone 6 Plus")]').text
    name1=driver.find_element_by_xpath('//*[contains(text(),"iPhone 6 Plus ")]').text
    print(name1)
    if name==name1:
        print('添加成功')
    else:
        pass
    
    # assert name == name1
    
    sleep(10)
    driver.quit()
  • 相关阅读:
    1、听说过Redis吗?它是什么?
    55、数据库高并发是我们经常会遇到的,你有什么好的解决方案吗?
    54、数据库如何保证持久性?
    53、数据库如何保证原子性?
    52、数据库如何保证一致性?
    注解定义、基本语法和属性
    Macbook 装机必备--开发篇
    http
    python:beaufiful
    python-yield
  • 原文地址:https://www.cnblogs.com/cy-zjs/p/13724490.html
Copyright © 2020-2023  润新知