美文网首页
selenium应用之“获取设备和元素信息”

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

作者: rr1990 | 来源:发表于2019-03-15 18:43 被阅读0次

    一、获取设备信息

    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")
    # <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()
    

    相关文章

      网友评论

          本文标题:selenium应用之“获取设备和元素信息”

          本文链接:https://www.haomeiwen.com/subject/yvqcmqtx.html