find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
css
find_element_by_xpath()
find_element_by_css_selector() html
driver.set_window_size(480, 800) 設置寬高
web
driver.maximize_window() 瀏覽器最大化windows
driver.get(url="https://www.baidu.com")訪問url瀏覽器
back()、forWord()後退、前進ui
close() 關閉當前頁面url
quit() 退出驅動程序,關閉全部頁面spa
clear()清空文本框信息htm
send_keys()文本框信息輸入,也能夠執行上傳操做對象
click()點擊
submit()提交表單,適合沒有提交按鈕的狀況,好比敲下回車
size 元素尺寸
text 元素文本信息
get_attribute(name)獲取屬性值
is_displayed() 判斷元素是否可見
driver.title頁面title
driver.current_url當前頁面url
size=driver.find_element_by_id('kw').size
#返回元素的屬性值,能夠是 id、name、type 或元素擁有的其它任意屬性
attribute=driver.find_element_by_id("kw").get_attribute('type')
#返回元素的結果是否可見,返回結果爲 True 或 False
result=driver.find_element_by_id("kw").is_displayed()
https://www.cnblogs.com/xinjing-jingxin/p/9299835.html
from selenium import webdriver
#引入 Keys 模塊
from selenium.webdriver.common.keys import Keys
#輸入框輸入內容
driver.find_element_by_id("kw").send_keys("seleniumm")
#刪除多輸入的一個 m
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
#輸入空格鍵+「教程」
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
driver.find_element_by_id("kw").send_keys(u"教程")
#ctrl+a 全選輸入框內容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
#ctrl+x 剪切輸入框內容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
#ctrl+v 粘貼內容到輸入框
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'v')
#經過回車鍵盤來代替點擊操做
driver.find_element_by_id("su").send_keys(Keys.ENTER)
import time
time.sleep(5) 強制等待5秒
隱性等待
driver.implicitly_wait(5) 隱性等待的週期是整個driver,只須要設置一次便可,每次的執行都會等待
顯式等待
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
elm = WebDriverWait(driver,5,1).until(EC.presence_of_element_located(By.ID,"keyword1"))
WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
driver - WebDriver 的驅動程序(Ie, Firefox,Chrome 等)
timeout - 最長超時時間,默認以秒爲單位
poll_frequency - 休眠時間的間隔(步長)時間,默認爲 0.5 秒
ignored_exceptions - 超時後的異常信息,默認狀況下拋 NoSuchElementException 異常。
switch_to_frame() 通常能夠直接經過id或者name定位,也能夠xpath方式先定位到iframe,再調用switch_to_frame()
……
#先經過 xpth 定位到 iframe
xf = driver.find_element_by_xpath('//*[@class="if"]')
#再將定位對象傳給 switch_to_frame()方法
driver.switch_to_frame(xf)
……
driver.switch_to_default_content()
switch_to_default_content() 回到上一層表單
current_window_handle獲取當前窗口句柄
windows_handles 獲取打開的全部窗口句柄
switch_to_window() 切換到句柄窗口
driver.get_screenshot_as_file("D:\\error.jap")