selenium应用之“获取设备和元素信息”

一、获取设备信息

  1. 获取浏览器的名称
  • driver.name
  1. 获取浏览器的属性
  • driver.capabilities
    返回值为一个字典类型,结果中包含有浏览器名称、浏览器版本等。
  1. 获取浏览器当前网页的标题
  • driver.title
  1. 获取浏览器当前网址
  • driver.current_url
  1. 获取窗口句柄信息
    句柄是每个窗口的标识,不同的窗口拥有不同的句柄。故当进行窗口之间的切换时,需通过句柄这个标识。
  • driver.current_window_handle:获取当前窗口句柄
  • driver.window_handles:获取所有句柄,返回值为列表类型
  1. 获取当前会话的cookies
  • driver.get_cookies()
    返回值为列表类型
  1. 获取当前窗口的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()

二、获取元素信息

  1. 获取元素的链接文本(link_text)
  • element.text
    返回值为字符串;若element元素无链接文本,则返回一个空字符串。
  1. 获取元素的标签名(tag)
  • element.tag_name
    返回值为字符串;
  1. 获取元素的其他的属性值(如id、class、type...)
  • element.get_attribute("属性")
    返回值为字符串;
  1. 获取元素的大小
  • element.size
    返回值为字典,key值为height和width
  1. 获取元素的位置
  • element.location
    返回值为字典,key值为x和y
  1. 获取元素的rect值(即size和location的结合)
  • element.rect
    返回值为字典,key值为height、width、x和y
  1. 获取元素的网络ID
  • element.id
    返回值为字符串
    注:此ID非id属性,它是网络ID号。它多用于比较两个元素是否相等。
  1. 判断元素是否对用户可见
  • element.is_displayed()
    返回值为bool类型
  1. 判断元素是否被启用
  • element.is_enabled()
    返回值为bool类型
  1. 判断元素是否被选中
  • element.is_selected()
    返回值为bool类型
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# 
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))    # 

"""判断元素对用户是否可见"""
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()

你可能感兴趣的:(selenium应用之“获取设备和元素信息”)