selenium2 Remote WebDriver
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)
通过对远程服务器发送命令来控制浏览器。远程的服务器需要运行这里定义的WebDriver
wire
协议。
属性: session_id
- WebDriver
控制,浏览器会话产生的一个String ID capabilities
——返回浏览器会话的可用功能dict
。
有关远程服务器,请看https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities 。
command_executor
——remote_connection.RemoteConnection
对象,用来执行命令。
error_handler
——errorhandler.ErrorHandler
对象,捕获错误。
add_cookie(cookie_dict) - 给当前会话加cookie。
参数: 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() - 关闭当前窗口。
例:
driver.close()
create_web_element(element_id) - 以指定的元素id创建一个新web元素
delete_all_cookies() - 删除当前会话的所有cookie
例:
driver.delete_all_cookies()
delete_cookie(name) - 删除一个指定的cookie
例:
driver.delete_cookie('my_cookie')
execute(driver_command, params=None)
给 command.CommandExecutor
发送一个要执行的命令。
参数: driver_command
:要执行的命令名(字符串) params
:命令的参数dict
。
返回:命令的JSON返回会加载到一个dict
对象。
execute_async_script(script,*args)
在当前的窗口/框架里异步执行Javascript。
参数: script:要执行的js *args:js
的任意合适的参数。
例:
driver.execute_async_script('document.title')
forward() - 浏览历史里前进一步
get(url) - 用当前的浏览器session加载一个web页面
get_cookie(name) - 返回一个指定的cookie,不存在返回None
get_cookies() - 返回一组dict,相当于当前会话的可用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() - 获取当前页面的截图的base64编码字符串,当页面嵌入了图片时这个方法很有用。
get_screenshot_as_file(filename) - 获取当前页面截图,如果有任何 IOError则返回False,正常返回True,文件名记得使用完整的路径
例:
driver.get_screenshot_as_file('/Screenshots/foo.png/')
get_screenshot_as_png - 获取当前窗口截图的二进制数据
get_window_position(windowHandle='current') - 获取当前窗口的x,y位置
get_window_size(windowHandle='current') - 获取当前窗口的宽高(width,height)
implicitly_wait(time_to_wait) - 设置一个隐式的等待时间,等待一个元素被发现或者一个命令的完成。
在每次会话里,这个方法只需要被调用一次。超时后要调用 execute_async_script
,请参看 set_script_timeout
。
例:
driver.implicitly_wait(30)
maximize_window() - 将webdriver正在使用的窗口最大化
quit() 退出驱动并关闭所有关联窗口
refresh() - 刷新当前页面
set_page_load_timeout(time_to_wait) - 给载入页面设置一个超时时间,在抛出错误之前会等待到加载完成
set_script_timeout(time_to_wait) - 在一个 execute_async_script调用期间,设置脚本等待的时间
set_window_position(x,y,windowHandle='current') - 给页面设置x,y位置
set_window_size(width,height,windowHandle='current') - 给页面设置宽高
start_client() - 在新会话开启之前调用,这个方法可以重载来定制启动行为
start_session(desired_capabilities, browser_profile=None) - 以期望的性能来创建一个新会话
参数: browser_name
——要请求的浏览器的名字。
version
—— 要请求的浏览器版本 。
platform
—— 浏览器平台。。
javascript_enabled
—— 新会话是否支持js 。
browser_profile
-——仅在请求Firefox浏览器时使用。selenium.webdriver.firefox.firefox_profile.FirefoxProfile
对象对象。
stop_client() - 执行一个退出命令时调用。这个方法可以重写,自己定制关闭时的行为
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 对象 来和 浏览器应用缓存交互
current_url - 当前页的url
current_window_handle - 当前窗口的句柄
desired_capabilities - 返回当前驱动正在使用的 '期望性能'
file_detectorlog_types - 返回可用的日志类型
listmobilename - 返回当前实例的底层浏览器名
rientation - 获取当前设备的适应情况
page_source - 获取当前页面的来源
switch_totitle - 当前页面的标题
window_handles - 返回当前会话内所有窗口的资源句柄