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")
# <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()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容