美文网首页python 爬虫selenium自动化操作
selenium自动化操作之三:元素定位和操作

selenium自动化操作之三:元素定位和操作

作者: 52d19f475fe5 | 来源:发表于2019-08-18 14:07 被阅读9次

元素(对象)的定位和操作是自动化测试的核心部分,其中操作是建立在定位的基础上的,因此元素的定位就显得非常重要。

一个对象就像一个人,他会有各种的特征(属性),比如我们可以通过一个身份证号、姓名或者他所住的地址找到这个人。那么一个元素也是具有类似的属性,我们可以通过这种唯一区别于其它元素的属性来定位这个元素。当然,除了要操作元素时需要定位元素外,为了获取元素中的文本、属性值或数量也需要定位元素。

1 元素定位的方法

webdriver提供了一系列的元素定位方法,常用的有以下几种:

以百度为例
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
  • driver.find_element_by_id():根据id来查找某个元素。等价于:
driver.find_element_by_id('kw')
driver.find_element(By.ID,'kw')
  • driver.find_element_by_name():根据name属性的值来查找元素。等价于:
driver.find_element_by_name('wd')
driver.find_element(By.NAME,'wd')
  • driver.find_element_by_class_name():根据类名来查找元素。等价于:
driver.find_element_by_class_name('s_ipt')
driver.find_element(By.CLASS_NAME,'s_ipt')
  • driver.find_elements_by_tag_name():根据标签名来查找元素。等价于:
driver.find_elements_by_tag_name('input')
driver.find_elements(By.TAG_NAME,'input')
  • driver.find_element_by_xpath():根据xpath语法来获取元素。等价于:
driver.find_element_by_xpath('//input[@id="kw"]')
driver.find_element(By.XPATH,'//input[@id="kw"]')
  • driver.find_element_by_css_selector():根据css选择器来选择元素。等价于:
driver.find_element_by_css_selector('#kw')
driver.find_element(By.CSS_SELECTOR,'#kw')
  • driver.find_element_by_link_text():根据文字链接的全部文本来获取元素。等价于:
driver.find_element_by_link_text('学术')
driver.find_element(By.LINK_TEXT,'学术')
  • driver.find_element_by_partial_link_text():根据文字链接的部分文本来获取元素。等价于:
driver.find_element_by_partial_link_text('hao')
driver.find_element(By.PARTIAL_LINK_TEXT,'hao')

注意:

  • find_elementfind_elements的区别:返回一个元素和返回元素列表
  • by_link_textby_partial_link_tex的区别:全部文本和包含某个文本

2 获取元素中的数据

find_element仅仅能够获取元素,不能够直接获取其中的数据,如果需要获取数据需要使用以下方法:

  • 获取文本:element.text
text = driver.find_element_by_partial_link_text('hao').text
print(text)
  • 获取属性值:element.get_attribute("属性名")
attribute = driver.find_element_by_id('su').get_attribute('value')
print(attribute)
  • 获取元素的尺寸:element.size
size = driver.find_element_by_id('kw').size
print(size)
  • 元素是否用户可见:element.is_displayed(),返回TrueFlase
see = driver.find_element_by_id('kw').is_displayed()
print(see)
3 对元素操作的方法
  • 填写输入框:send_keys('输入内容')
sleep(2)
driver.find_element_by_id('kw').send_keys('selenium自动化测试')
  • 清空输入框:clear()
sleep(2)
driver.find_element_by_id('kw').send_keys('selenium自动化测试')
sleep(2)
driver.find_element_by_id('kw').clear()
  • 单击元素:click()
  1. 单击按钮,示例:百度一下按钮
sleep(2)
driver.find_element_by_id('kw').send_keys('selenium自动化测试')
sleep(2)
driver.find_element_by_id('su').click()

2.单击文字链接,示例:hao123链接

sleep(2)
driver.find_element_by_partial_link_text('hao123').click()

3.单击图片,示例:输入框上面的图片

sleep(2)
driver.find_element_by_tag_name('area').click()

4.单击下拉按钮,示例:右上角的更多产品文库

sleep(2)
driver.find_element_by_css_selector('a.bri').click()
sleep(2)
driver.find_element_by_name('tj_wenku').click()
  • 提交表单:submit()
sleep(2)
driver.find_element_by_id('kw').send_keys('selenium提交表单')
sleep(2)
driver.find_element_by_id('su').submit()

注意:

  • click()用于单击任何可以点击的元素,文字/图片链接,按钮,下拉按钮等。

  • submit()要求提交对象是一个表单,更强调对信息的提交。比如:一个文字链接不能用submit()方法。

  • click()更强调事件的独立性。

相关文章

  • selenium基础(java)

    selenium元素的定位以及操作 1. 元素的定位 Selenium 自动化,我们需要做的最基本的事情就是在页面...

  • (02)selenium页面元素定位

    用selenium操作浏览器进行自动化操作其实就是通过元素属性执行相关操作。所以,我们要知道怎样去查找元素,定位元...

  • selenium自动化操作之三:元素定位和操作

    元素(对象)的定位和操作是自动化测试的核心部分,其中操作是建立在定位的基础上的,因此元素的定位就显得非常重要。 一...

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

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

  • (二)selenium-常用元素定位方法

    selenium自动化测试过程中,定位元素是第一步,成功定位元素之后才能对元素进行判断或操作,webdriver提...

  • selenium的定位操作

    selenium的定位操作 掌握定位元素的方法 掌握获取元素中数据的方法 selenium 处理cookie 通过...

  • Selenium基础

    元素的定位 Selenium 自动化,我们需要做的最基本的事情就是在页面找到元素并通过脚本程 序去操作这个元素,实...

  • 2018-04-28 selenium2+Python学习

    简单对象的定位 对象(元素)的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上的,因此元素定位就显...

  • python3+selenium实现Web自动化9:basePa

    封装selenium库的一些基础操作方法,如:元素定位、截图、元素通用操作、切换frame、警示框处理等等,bas...

  • Python自动化测试学习哪些知识?

    Python自动化测试学习哪些知识?先学习自动化测试基础,学习Appium操作,元素定位、操作、等待、滑动等,深入...

网友评论

    本文标题:selenium自动化操作之三:元素定位和操作

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