class selenium.webdriver.remote.webdriver.WebDriver(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=None, browser_profile=None, proxy=None, keep_alive=False)
通過對遠(yuǎn)程服務(wù)器發(fā)送命令來控制瀏覽器。遠(yuǎn)程的服務(wù)器需要運行這里定義的?WebDriver
??wire
?協(xié)議。
屬性: ?session_id
?- ?WebDriver
?控制,瀏覽器會話產(chǎn)生的一個?String ID capabilities
?——返回瀏覽器會話的可用功能?dict
?。
有關(guān)遠(yuǎn)程服務(wù)器,請看https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities 。
?command_executor
? ——remote_connection.RemoteConnection
? 對象,用來執(zhí)行命令。
?error_handler
? ——?errorhandler.ErrorHandler
?對象,捕獲錯誤。
add_cookie(cookie_dict) - 給當(dāng)前會話加cookie。
參數(shù):? cookie_dict
?:?dict
?對象,需要指定鍵?name
?和?value
?,可選的鍵有:?path
?,?domain
?,?secure
?,?expiry
?。
用法:
driver.add_cookie({'name':'foo','value':'bar'})
driver.add_cookie({'name':'foo','value':'bar','path':'/'})
driver.add_cookie({'name':'foo','value':'bar','path':'/','secure':True})
back() - 在瀏覽歷史中回退一步。
例:
driver.back()
close() - 關(guān)閉當(dāng)前窗口。
例:
driver.close()
create_web_element(element_id) - 以指定的元素id創(chuàng)建一個新web元素
delete_all_cookies() - 刪除當(dāng)前會話的所有cookie
例:
driver.delete_all_cookies()
delete_cookie(name) - 刪除一個指定的cookie
例:
driver.delete_cookie('my_cookie')
execute(driver_command, params=None)
給? command.CommandExecutor
? 發(fā)送一個要執(zhí)行的命令。
參數(shù): ?driver_command
?:要執(zhí)行的命令名(字符串)? params
?:命令的參數(shù)?dict
?。
返回:命令的JSON返回會加載到一個?dict
?對象。
execute_async_script(script,*args)
在當(dāng)前的窗口/框架里異步執(zhí)行Javascript。
參數(shù): script:要執(zhí)行的js ?*args:js
?的任意合適的參數(shù)。
例:
driver.execute_async_script('document.title')
forward() - 瀏覽歷史里前進一步
get(url) - 用當(dāng)前的瀏覽器session加載一個web頁面
get_cookie(name) - 返回一個指定的cookie,不存在返回None
get_cookies() - 返回一組dict,相當(dāng)于當(dāng)前會話的可用cookie
get_log(log_type) - 獲取指定類型的日志
例:
driver.get_log('browser')
driver.get_log('driver')
driver.get_log('client')
driver.get_log('server')
get_screenshot_as_base64() - 獲取當(dāng)前頁面的截圖的base64編碼字符串,當(dāng)頁面嵌入了圖片時這個方法很有用。
get_screenshot_as_file(filename) - 獲取當(dāng)前頁面截圖,如果有任何 IOError則返回False,正常返回True,文件名記得使用完整的路徑
例:
driver.get_screenshot_as_file('/Screenshots/foo.png/')
get_screenshot_as_png - 獲取當(dāng)前窗口截圖的二進制數(shù)據(jù)
get_window_position(windowHandle='current') - 獲取當(dāng)前窗口的x,y位置
get_window_size(windowHandle='current') - 獲取當(dāng)前窗口的寬高(width,height)
implicitly_wait(time_to_wait) - 設(shè)置一個隱式的等待時間,等待一個元素被發(fā)現(xiàn)或者一個命令的完成。
在每次會話里,這個方法只需要被調(diào)用一次。超時后要調(diào)用? execute_async_script
?,請參看? set_script_timeout
?。
例:
driver.implicitly_wait(30)
maximize_window() - 將webdriver正在使用的窗口最大化
quit() 退出驅(qū)動并關(guān)閉所有關(guān)聯(lián)窗口
refresh() - 刷新當(dāng)前頁面
set_page_load_timeout(time_to_wait) - 給載入頁面設(shè)置一個超時時間,在拋出錯誤之前會等待到加載完成
set_script_timeout(time_to_wait) - 在一個 execute_async_script調(diào)用期間,設(shè)置腳本等待的時間
set_window_position(x,y,windowHandle='current') - 給頁面設(shè)置x,y位置
set_window_size(width,height,windowHandle='current') - 給頁面設(shè)置寬高
start_client() - 在新會話開啟之前調(diào)用,這個方法可以重載來定制啟動行為
start_session(desired_capabilities, browser_profile=None) - 以期望的性能來創(chuàng)建一個新會話
參數(shù): ?browser_name
?——要請求的瀏覽器的名字。
?version
?—— 要請求的瀏覽器版本 。
?platform
?—— 瀏覽器平臺。。
?javascript_enabled
?—— 新會話是否支持js 。
?browser_profile
?-——僅在請求Firefox瀏覽器時使用。?selenium.webdriver.firefox.firefox_profile.FirefoxProfile
? 對象對象。
stop_client() - 執(zhí)行一個退出命令時調(diào)用。這個方法可以重寫,自己定制關(guān)閉時的行為
switch_to_active_element() - 不推薦使用
driver.switch_to.active_elementswitch_to_alert() - 不推薦使用
driver.switch_to.alertswitch_to_default_content() - 不推薦使用
driver.switch_to.default_contentswitch_to_frame(frame_reference) - 不推薦使用
driver.switch_to.frameswitch_to_window(window_name) - 不推薦使用
driver.switch_to.windowapplication_cache - 返回一個 ApplicationCache 對象 來和 瀏覽器應(yīng)用緩存交互
current_url - 當(dāng)前頁的url
current_window_handle - 當(dāng)前窗口的句柄
desired_capabilities - 返回當(dāng)前驅(qū)動正在使用的 '期望性能'
file_detectorlog_types - 返回可用的日志類型
listmobilename - 返回當(dāng)前實例的底層瀏覽器名
rientation - 獲取當(dāng)前設(shè)備的適應(yīng)情況
page_source - 獲取當(dāng)前頁面的來源
switch_totitle - 當(dāng)前頁面的標(biāo)題
window_handles - 返回當(dāng)前會話內(nèi)所有窗口的資源句柄
更多建議: