zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    两个路由器配置静态路由只能单边 ping 通
    CVE202125646:Apache Druid远程命令执行漏洞复现
    批量修改图片的格式
    十大远程控制软件排名
    Splashtop 免费60天 大赠送
    单例设计模式
    蓄水池抽样算法/水塘采样算法
    kafka安装(单机版)
    LeetCode382链表随机节点
    LeetCode398随机数索引
  • 原文地址:https://www.cnblogs.com/cy-zjs/p/13724490.html
Copyright © 2011-2022 走看看