codecamp

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 - 返回当前会话内所有窗口的资源句柄


selenium2 Chrome WebDriver
selenium2 页面元素
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }