Selnium Chrome WebDriver API使用

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

参考资料

标签