表单切换,下拉框,时间等待

切换iframe表单:b.switch_to_frame(iframe)

返回上级表单:b.switch_to_default_content()

切换表单前找到表单:iframe_ele = b.find_element_by_id('表单元素')

# coding:utf-8
import os
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import Select
#表单切换
b=webdriver.Chrome()
#b.implicitly_wait(10)
b.maximize_window()
b.get('file:///D:/tk/ui/Demo/iframeDemo.html')
#b.find_element_by_name('t').send_keys('ttttt')
#切换iframe表单
iframe_ele = b.find_element_by_id('if')
b.switch_to.frame(iframe_ele)
b.find_element_by_id('kw').send_keys('rrrrr')
b.find_element_by_id('su').click()
#返回上级表单
b.switch_to_default.content()
b.find_element_by_name('t').clear()
b.find_element_by_name('t').send_keys('test')
sleep(3)
b.quit()


下拉菜单处理:
fromselenium.webdriver.support.uiimport Select
使用值定位:Select(x1).select_by_value('10.29')
使用索引定位:Select(x1).select_by_index(2),从0开始
使用Ite值定位:Select(x1).select_by_visible_text('UPS Next Day Air ==> $12.51')

select_ele = b.find_element_by_id('ShippingMethod')
Select(select_ele).select_by_value('8.34')
Select(select_ele).select_by_index(3)
Select(select_ele).select_by_visible_text('USPS First Class ==> $3.20')


等待时间
隐时等待:全局等待时间,作用于整个浏览器始末
b.implicitly_wait(10)
显示等待:步骤等待时间,只作用与某一元素
使用 WebDriverWait() + until() + expected_conditions或者lambda匿名函数实现
强制等待:脚本某个位置强制等待设置时间
from time import sleep
sleep(5)

btn_ele = WebDriverWait(b,10,0.5).until(lambda b:b.find_element_by_id('su'))
btn_ele = WebDriverWait(b,10,0.5).
until(EC.presence_of_element_located(((By.ID,'su'))))
btn_ele.click()

















原文地址:https://www.cnblogs.com/huaihe/p/11173655.html