美文网首页
selenium03-选择web元素的方法

selenium03-选择web元素的方法

作者: 筱媛媛 | 来源:发表于2019-06-16 18:31 被阅读0次

怎么寻找网页元素,可以说是WebUI自动化最重要的东西之一。本篇主要讲的是选择web元素的一些基本方法,主要以“新浪财经网”为例。包括:通过id/name/class/tag以及通过超链接文本选择元素,后面将会循序渐进的讲一些更高级定位元素的方法。希望感兴趣的小伙伴可以坚持看下去同时欢迎提出宝贵的意见让我们一起进步!

01:WebUI自动化三部曲

选择界面元素
操作界面元素输入操作和输出操作)
③根据界面上获取的数据进行分析和处理

02:WebDriver和WebElement基本功能

1)WebDriver:操作整个浏览器和当前整个页面

①当前页面上的选择符合查找条件的对象
②打开网址、回退、前进、刷新网页等
③获取、改变浏览器串口大小,关闭浏览器、截屏等
④获取、设置cookies

2)WebElement:操作和对应web元素

①当前web元素的所在子元素里面符合查找条件的对象
②操作该web元素(点击元素、输入字符、获取元素属性信息等)

03:2种常见获取元素信息的方法

1)text:显示该元素在web页面显示出来的文本内容,使用WebElement的 text属性。

2)get_attribute:有三种用法。

①获取元素属性的值:get_attribute("content")

整个web元素的HTML片段:.get_attribute('outerHTML')

③web元素内部子元素HTML片段:get_attribute('innerHTML')

from selenium import webdriver
driver=webdriver.Chrome()
driver.get('http://finance.sina.com.cn/money/globalindex/')
04:通过id选择元素

1)element =driver.find_element_by_id("hq_sh000001")

2)唯一性,查找的效率最高

#获取上证指数行情(id=hq_sh000001)
ele=driver.find_element_by_id('hq_sh000001')
#获取元素文本信息
print(ele.text)
05:通过name选择元素

1)返回第一个找到的元素,如果找不到会报错。
例:element= driver.find_element_by_name("description")

2)返回所有元素。如果找不到返回空列表,不抛出异常。
例:element= driver.find_elements_by_name("name")

#获取name=description的元素
ele = driver.find_element_by_name("description")
#获取description中属性为content的值
print(ele.get_attribute("content"))

#返回所有元素
#不知道某个元素是否存在,可以通过所返回的列表元素是否为空来做一些相应处理
name = driver.find_elements_by_name("name")
# print([one.text for one in name]) #返回空列表[]
if name ==[]:
    print('未找到该元素')
else:
    print('该元素存在')
06:通过class选择元素

1)返回第一个找到的元素。
cheeses = driver.find_element_by_class_name("text_info")

2)返回所有元素。
cheeses = driver.find_elements_by_class_name("text_info")

#获取意见反馈的内容
ele = driver.find_element_by_class_name("text_info")
print(ele.text)

#获取所有意见反馈的内容
eles = driver.find_elements_by_class_name("text_info")
# print([one.text for one in eles])
for one in  eles:
    print(one.text)
    print('*************************')
07:通过tag名称选择元素

1)返回第一个找到的元素。
cheeses = driver.find_element_by_tag_name("input")

2)返回所有元素。
cheeses = driver.find_elements_by_tag_name("span")

3)注意事项:通过title标签名获取title元素,打印的文本值为空。因为:

①text显示的应该是网页中可见的内容。title不在网页中,所以显示不出来。
②Title是一个特殊的元素,标签内的文本表示页面的标题,可以通过driver.title属性获取页面标题

#获取标签input中属性为name的值
ele=driver.find_element_by_tag_name('input')
print(ele.get_attribute('name'))

#获取所有span标签的文本信息
eles=driver.find_elements_by_tag_name('span')
for one in eles:
    print(one.text)

#获取title标签名称
titles=driver.find_element_by_tag_name('title')
print(driver.title)
08:通过超链接文本选择元素

1)对于链接,可以通过其链接文本的内容进行选择:ele=driver.find_element_by_link_text(u'新浪首页')

2)linkText定位:ele = driver.find_element_by_link_text("新浪首页")

3)通过部分文本来找到该链接元素:ele=driver.find_element_by_partial_link_text("新浪")

#对于文本链接
ele=driver.find_element_by_link_text(u'新浪首页')
ele.click()

#linkText定位:点击打开新浪首页
ele=driver.find_element_by_link_text('新浪首页')
ele.click()

#partial_link定位:点击打开新浪首页
ele=driver.find_element_by_partial_link_text('新浪')
ele.click()
09:id/name/class/tag以及通过超链接文本选择元素总结

1)当页面元素有id属性时,最好尽量用id来定位。如果是动态id或者没有则选择其他定位方法。

2) xpath和css后续讲解

3)当要定位一组相同元素时,可以考虑用tagName或name。

4)当有链接需要定位时,可以考虑linkText或partialLinkText方式

相关文章

  • selenium03-选择web元素的方法

    怎么寻找网页元素,可以说是WebUI自动化最重要的东西之一。本篇主要讲的是选择web元素的一些基本方法,主要以“新...

  • Selenium选择web元素

    获取html片段可以用来做什么? beautifulsoup用法? 下面附上bs1.html代码截图: 通过代码实...

  • Selenium学习002-元素选择之常规方法

    Selenium 选择、操作web元素01 Selenium 自动化主要就是: 选择界面元素依靠selenium库...

  • selenium07-css选择器初识

    css选择器是浏览器用来选择元素的,同样我们selenium也可以使用css选择器语法来选择 web 元素。 本篇...

  • jQuery使用小结

    jQuery使用 常用的方法总结 1,元素选择器 第一种:向下选择 (1),直接选择紧挨着的子元素$('.元素类名...

  • selenium应用之“定位单元素”

    一、介绍 通过获取web页面上的元素控件信息,可对元素进行点击和输入数据等操作 二、元素基本的定位方法 1. 通过...

  • 2-jQuery设计思想之选择元素

    JQ设计思想? .选择网页元素 1.模拟css选择元素2.独有表达式选择3.多种筛选方法 .JQ写法 1.方法函数...

  • Selectors API

    HTML5向Web API新引入了 两个方法用来更方便地从DOM选取元素,功能类似于jQuery的选择器。这使得在...

  • Web前端-CSS必备知识点

    Web前端-CSS必备知识点 css基本内容,类选择符,id选择符,伪类,伪元素,结构,继承,特殊性,层叠,元素分...

  • 2 jQuery02 元素基本方法(样式操作)

    1、jQuery选择器选中元素进行样式的操作,都是给dom元素添加行内样式;以下方法都是获取元素后元素的基本方法:...

网友评论

      本文标题:selenium03-选择web元素的方法

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