• selenium中的切换句柄及切换iframe操作


    from selenium import webdriver
    from time import sleep
    
    from selenium.webdriver.support.select import Select
    driver=webdriver.Chrome()
    #窗体最大化
    driver.maximize_window()
    driver.get('http://39.98.138.157/shopxo/index.php')
    sleep(1)
    #在搜索框输入手机
    driver.find_element_by_id('search-input').send_keys('手机')
    #点击搜索
    driver.find_element_by_id('ai-topsearch').click()
    #点击手机详情,进入详情页
    driver.find_element_by_xpath('/html/body/div[4]/div/ul/li[1]/div/a/img').click()
    '''
    #获取页面title,并打印
    title=driver.title
    print(title)
    '''
    #浏览器句柄,是个list,并打印
    handles=driver.window_handles
    print(handles)
    
    #关闭当前页面(老页面)
    #driver.close()
    
    #切换页面就是切换句柄:切换handles的时候,尽可能保障最低只有两个页面
    driver.switch_to.window(handles[1])
    
    #要加等等,不然有可能会handles切换后的页面操作不成功
    sleep(2)
    
    #点击选择套餐
    driver.find_element_by_xpath('/html/body/div[4]/div[2]/div[2]/div[2]/dl/dd/div[2]/div[3]/form/div[1]/div[1]/ul/li[1]').click()
    #点击选择颜色
    driver.find_element_by_xpath('/html/body/div[4]/div[2]/div[2]/div[2]/dl/dd/div[2]/div[3]/form/div[1]/div[2]/ul/li[1]').click()
    #点击选择容量
    driver.find_element_by_xpath('/html/body/div[4]/div[2]/div[2]/div[2]/dl/dd/div[2]/div[3]/form/div[1]/div[3]/ul/li[2]').click()
    #选择数量,先清除输入框中的数据
    driver.find_element_by_id('text_box').clear()
    #再次输入数量
    driver.find_element_by_id('text_box').send_keys('5')
    sleep(3)
    
    #点击立即购买
    #driver.find_element_by_xpath('/html/body/div[4]/div[2]/div[2]/div[3]/div[2]/div/button').click()
    
    #加入购物车
    driver.find_element_by_xpath("/html/body/div[4]/div[2]/div[2]/div[3]/div[3]/div/button").click()
    sleep(2)
    
    #切换iframe
    driver.switch_to.frame(driver.find_element_by_xpath("//*[@id='common-popup-modal-login']/div/iframe"))
    sleep(2)
    #登录账户
    driver.find_element_by_xpath("//input[@class='am-radius']").send_keys('666666')
    driver.find_element_by_xpath("//input[@name='pwd']").send_keys('111111')
    driver.find_element_by_xpath("/html/body/div[1]/form/div[4]/button").click()
    #关闭当前页面(新页面),回到上一页面
    #driver.close()
    
    sleep(5)
    driver.quit()
  • 相关阅读:
    递归函数底层原理浅析
    lambda expression & mutable
    命令mv
    printf的参数
    程序结构之静态本地变量
    汇编.align指令
    程序结构之全局变量
    命令touch
    更改gcc默认版本,实现gcc版本升降级
    命令chmod
  • 原文地址:https://www.cnblogs.com/cy-zjs/p/13646144.html
Copyright © 2020-2023  润新知