selenium的經常使用方法

一、經常使用定位方法

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

#返回元素的屬性值,能夠是 idnametype 或元素擁有的其它任意屬性
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 的驅動程序(IeFirefoxChrome 等)
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")

相關文章
相關標籤/搜索