等待 1.休眠 sleep() 次选 2.隐式等待 首选 3.显式等待 一般不用
from selenium import webdriver from selenium.webdriver.support.select import Select from time import sleep try: driver = webdriver.Chrome() driver.get('http://localhost/ranzhi/www/sys/user-login.html') driver.maximize_window() # 隐式等待 ---等待页面加载完成,参数为最大等待时间,单位是秒 # 隐式等待语句只需要写一次 #并不总是有效 #会浪费一定的时间 driver.implicitly_wait(10) # 用户名 driver.find_element_by_id('account').send_keys('admin') # 密码 driver.find_element_by_id('password').send_keys('123456') # 登陆 driver.find_element_by_id('submit').click() # sleep(2) # 点击 “后台管理” driver.find_element_by_id('s-menu-superadmin').click() # sleep(1) # 定位iframe iframe = driver.find_element_by_id('iframe-superadmin') # 切换到iframe中 driver.switch_to.frame(iframe) # 点击 “添加成员” driver.find_element_by_xpath('//*[@id="shortcutBox"]/div/div[1]/div/a/h3').click() # sleep(1) driver.find_element_by_id('account').send_keys('tom') driver.find_element_by_id('realname').send_keys('Tom Cruse') driver.find_element_by_id('genderm').click() # 索引从0开始 # 选择部门 select = driver.find_element_by_id('dept') depts = Select(select) # 根据value选择部门 depts.select_by_value('10') # 选择角色 select = driver.find_element_by_id('role') roles = Select(select) # 根据文本选择角色 roles.select_by_visible_text('项目经理') driver.find_element_by_id('password1').send_keys('123456') driver.find_element_by_id('password2').send_keys('123456') driver.find_element_by_id('email').send_keys('tom@163.com') # 保存 driver.find_element_by_id('submit').click() sleep(2) # 点击删除 driver.find_element_by_xpath('/html/body/div/div/div/div[2]/div/div/table/tbody/tr[2]/td[11]/a[3]').click() # 点击取消 driver.switch_to.alert.dismiss() # driver.find_element_by_xpath('/html/body/div/div/div/div[2]/div/div/table/tbody/tr[2]/td[11]/a[3]').click() # 点击确定 # driver.switch_to.alert.accept() except Exception as e: print(e) finally: # sleep(2) driver.quit() from selenium import webdriver from selenium.webdriver.common. by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from time import sleep try: driver = webdriver.Chrome() driver.get('https:///www.baidu.com') driver.maximize_window() # By.ID 定位 # driver.find_element_by_id('kw').send_keys('元宵节') 专用 driver.find_element(By.ID,'kw').send_keys('元宵节') # 通用 # 显式等待 # driver 浏览器 # 5 最大等待时间 #0.5 检查时间间隔 # until() 等待结束的条件 # 目标元素的定位方式必须以元组的方式出现 element = WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located((By.ID,'su'))) element.click() except Exception as e: print(e) finally: sleep(2) driver.quit()
|