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()

 

posted @ 2020-09-10 15:48  cy583  阅读(231)  评论(0编辑  收藏  举报