一、获取设备信息
- 获取浏览器的名称
- 获取浏览器的属性
- driver.capabilities
返回值为一个字典类型,结果中包含有浏览器名称、浏览器版本等。
- 获取浏览器当前网页的标题
- 获取浏览器当前网址
- 获取窗口句柄信息
句柄是每个窗口的标识,不同的窗口拥有不同的句柄。故当进行窗口之间的切换时,需通过句柄这个标识。
- driver.current_window_handle:获取当前窗口句柄
- driver.window_handles:获取所有句柄,返回值为列表类型
- 获取当前会话的cookies
- driver.get_cookies()
返回值为列表类型
- 获取当前窗口的rect值(即location和size)
- driver.get_window_rect()
返回值为字典,key值为'height、width、x、y
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
"""获取浏览器的名称"""
browser_name = driver.name
print(browser_name) # chrome
"""获取浏览器的属性"""
browser_capabilities = driver.capabilities
print(browser_capabilities)
"""浏览器的结果
{'acceptInsecureCerts': False,
'acceptSslCerts': False,
'applicationCacheEnabled': False,
'browserConnectionEnabled': False,
'browserName': 'chrome',
'chrome': {'chromedriverVersion': '2.42.591088 (7b2b2dca23cca0862f674758c9a3933e685c27d5)',
'userDataDir': 'C:\\Users\\admin\\AppData\\Local\\Temp\\scoped_dir5812_30038'},
'cssSelectorsEnabled': True,
'databaseEnabled': False,
'goog:chromeOptions': {'debuggerAddress': 'localhost:49631'},
'handlesAlerts': True,
'hasTouchScreen': False,
'javascriptEnabled': True,
'locationContextEnabled': True,
'mobileEmulationEnabled': False,
'nativeEvents': True,
'networkConnectionEnabled': False,
'pageLoadStrategy': 'normal',
'platform': 'Windows NT',
'rotatable': False,
'setWindowRect': True,
'takesHeapSnapshot': True,
'takesScreenshot': True,
'unexpectedAlertBehaviour': '',
'version': '72.0.3626.121',
'webStorageEnabled': True}
"""
"""获取网页的标题"""
webpage_title = driver.title
print(webpage_title) # 百度一下,你就知道
"""获取网页的地址"""
webpage_url = driver.current_url
print(webpage_url) # https://www.baidu.com/
"""获取当前窗口句柄"""
cur_handle = driver.current_window_handle
print(cur_handle) # CDwindow-FFE81FC129391725ED651650DC14A8AD
"""获取所有句柄"""
handles = driver.window_handles
print(handles) # ['CDwindow-FFE81FC129391725ED651650DC14A8AD']
"""获取当前会话的cookies"""
cookies = driver.get_cookies()
print(cookies)
"""获取当前窗口的rect值(即location和size)"""
rect = driver.get_window_rect()
print(rect) # {'height': 1020, 'width': 945, 'x': 10, 'y': 10}
driver.quit()
二、获取元素信息
- 获取元素的链接文本(link_text)
- element.text
返回值为字符串;若element元素无链接文本,则返回一个空字符串。
- 获取元素的标签名(tag)
- element.tag_name
返回值为字符串;
- 获取元素的其他的属性值(如id、class、type...)
- element.get_attribute("属性")
返回值为字符串;
- 获取元素的大小
- element.size
返回值为字典,key值为height和width
- 获取元素的位置
- element.location
返回值为字典,key值为x和y
- 获取元素的rect值(即size和location的结合)
- element.rect
返回值为字典,key值为height、width、x和y
- 获取元素的网络ID
- element.id
返回值为字符串
注:此ID非id属性,它是网络ID号。它多用于比较两个元素是否相等。
- 判断元素是否对用户可见
- element.is_displayed()
返回值为bool类型
- 判断元素是否被启用
- element.is_enabled()
返回值为bool类型
- 判断元素是否被选中
- element.is_selected()
返回值为bool类型
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# <input type="submit" id="su" value="百度一下" class="bg s_btn">
element = driver.find_element_by_id("su")
"""获取元素的链接文本"""
element_link_text = element.text
print(element_link_text) # 因为此元素没有链接文本,所以它返回的是一个空字符串
"""获取元素的标签名"""
element_tag = element.tag_name
print(element_tag) # input
"""获取元素的id属性"""
element_id = element.get_attribute("id")
print(element_id) # su
"""获取元素的class属性"""
element_class = element.get_attribute("class")
print(element_class) # bg s_btn
"""获取元素的value值"""
element_value = element.get_attribute("value")
print(element_value) # 百度一下
"""获取元素的type值"""
element_type = element.get_attribute("type")
print(element_type) # submit
"""获取元素大小"""
element_size = element.size
print(element_size) # {'height': 36, 'width': 100}
"""获取元素的位置"""
element_location = element.location
print(element_location) # {'x': 684, 'y': 301}
"""获取元素的rect值(即size和location的结合)"""
element_rect = element.rect
print(element_rect) # {'height': 36, 'width': 100, 'x': 684, 'y': 301}
"""获取元素的网络ID(多用于判断两个元素是否相等)"""
element_internet_ID = element.id
print(element_internet_ID) # 0.753728932650775-1
print(type(element_internet_ID)) # <class 'str'>
"""判断元素对用户是否可见"""
element_displayed = element.is_displayed()
print(element_displayed) # True
"""判断元素是否被启用"""
element_enabled = element.is_enabled()
print(element_enabled) # True
"""判断元素是否被选中"""
element_selected = element.is_selected()
print(element_selected) # False
driver.quit()