Selnium Chrome WebDriver API使用
使用
1.带参数使用
> selenium.webdriver.chrome.webdriver.WebDriver(executable_path='chromedriver',port=0, chrome_options=None, service_args=None,desired_capabilities=None, service_log_path=None)
2.不带参数使用:
> selenium.webdriver.remote.webdriver.WebDriver
使用ChromeDriver控制Chrome 浏览器
ChromeDriver下载
基本操作
使用Chrome选项配置
> create_options()
使用Chrome网络配置 返回 dict.
> get_network_conditions()
{‘latency’: 4, ‘download_throughput’: 2, ‘upload_throughput’: 2,
‘offline’: False}
指定 id.启动 Chrome
launch_app(id)
关闭Chrome browser 和ChromeDriver
quit()
设置网络参数
driver.set_network_conditions(offline=False, latency=5, # additional latency (ms) download_throughput=500 * 1024, # maximal throughput upload_throughput=500 * 1024) # maximal throughput
注意: ‘throughput’ 可以设置上传和下载
The WebDriver implementation.
使用WebDriver协议向远程服务器发送命令控制浏览器 参考
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, file_detector=None)
基本:object
发送命令控制服务器 参考
属性
- command_executor - 执行命令
- error_handler - 处理错误
加入cookie参数:cookie_dict
dict对象包含key,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})
后退
driver.back()
关闭当前窗口
driver.close()
创建ID元素
create_web_element(element_id)
删除所有会话的cookie
driver.delete_all_cookies()
删除指定cookie
driver.delete_cookie(‘my_cookie’)
发送命令
driver.execute_async_script(‘document.title’)
参数:
- driver_command: 命令
- params:参数
返回: JSON对象
异步执行JavaScript
driver.execute_async_script(‘document.title’)
参数:
- script: 命令
- args:参数
同步执行JavaScript
driver.execute_script(‘document.title’)
参数:
- script: 命令
- args:参数
元素定位
单元素定位
find_element(by='id', value=None)
className定位
driver.find_element_by_class_name(name)
css选择器定位
find_element_by_css_selector(css_selector)
ID定位
find_element_by_id(id_)
link定位
find_element_by_link_text(link_text)
name属性定位
find_element_by_name(name)
partial_link定位
find_element_by_partial_link_text(link_text)
tag定位
find_element_by_tag_name(name)
xpath定位
find_element_by_xpath(xpath)
查找多个元素
find_elements(by='id', value=None)
find_elements_by_class_name(name)
find_elements_by_css_selector(css_selector)
find_elements_by_id(id_)
find_elements_by_name(name)
find_elements_by_link_text(text)
find_elements_by_partial_link_text(link_text)
find_elements_by_tag_name(name)
find_elements_by_xpath(xpath)
页面操作
前进
driver.forward()
打开网页
driver.get(url)
获取指定cookie
driver.get_cookie(‘my_cookie’)
获取所有cookie
driver.get_cookies()
获取日志
driver.get_log(‘browser’)
driver.get_log(‘driver’)
driver.get_log(‘client’)
driver.get_log(‘server’)
截图为base64图像编码
driver.get_screenshot_as_base64()
截图
driver.get_screenshot_as_file(‘/Screenshots/foo.png’)
参数:
- filename 指定文件名
截图为png格式
driver.get_screenshot_as_png()
获取窗口 x,y 位置
driver.get_window_position()
获取窗口的高和宽
driver.get_window_rect()
获取当前窗口的高和宽
get_window_size(windowHandle='current')
隐式等待
driver.implicitly_wait(30)
窗口最大化
driver.maximize_window()
窗口最小化
driver.minimize_window()
退出ChromeDriver 和Chrome
driver.quit()
页面刷新
driver.refresh()
截图
driver.save_screenshot(‘/Screenshots/foo.png’)
页面加载超时
driver.set_page_load_timeout(30)
脚本超时
driver.set_script_timeout(30)
设置窗口位置
driver.set_window_position(0,0)
设置窗口坐标
driver.set_window_rect(x=10, y=10)
driver.set_window_rect(width=100, height=200)
driver.set_window_rect(x=10, y=10, width=100, height=200)
设置窗口大小
driver.set_window_size(800,600)
开启新session
driver.start_client()
停止
driver.stop_client()
当前焦点的对象
driver.switch_to_active_element()
捕获弹出对话框
driver.switch_to_alert()
从frame中切回主文档
driver.switch_to_default_content()
切换到frame
driver.switch_to_frame(frame_reference)
切换到window
driver.switch_to_window(window_name)
获取application cache
driver.application_cache
当前url
driver.current_url
肖前窗口句柄
driver.current_window_handle
desired_capabilities
desired_capabilities
、
获取日志
driver.log_types
file_detector
driver.file_detector
mobile
driver.mobile
name
driver.name
orientation
driver.orientation
页面源码
driver.page_source
标题
driver.title
窗口句柄
页面元素方法
清除文本
clear()
单击
click()
获取元素的属性值
get_attribute(name)
获取元素的给定属性值
get_property(name)
元素对用户是否可见
is_displayed()
是否启用元素
is_enabled()
是否选择了复选框或者单选框
is_selected()
将当前元素的屏幕截图保存到png文件中
screenshot(filename)
输入文字
send_keys(*value)
提交
submit()
获取css属性的值
value_of_css_property(property_name)
id
id
元素在当前可渲染画布的位置
location
元素在屏幕上的位置
location_once_scrolled_into_view
父元素
parent
坐标
rect
以base64编码字符串的形式获取当前元素的屏幕快照
screenshot_as_base64
获取当前元素的屏幕快照PNG
screenshot_as_png
元素的个数
size
当前元素的标签名
tag_name
元素的文本
text