Selenium学习之元素定位

发表于:2019-7-23 11:42  作者:王翔   来源:清风Python

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: Selenium

  今天说元素定位,selenium1.0起初它使用了基于Javascript的自动化引擎,而浏览器对 Javascript 又有很多安全限制,之后后通过webdrvier进行了各浏览器的协议封装。那么说到底,我们通过selenium变相的完成了js的的相关操作,比如:
  selenium元素定位方法
  再来看看js的dom对象:
  js的dom对象
  selenium将JavaScript的HTML DOM进行了封装处理,最终提供给我们进行使用。引申出三点:
  开发转测试,真的是有优势的
  作为一个合格的测试,抽时间学学html css 和js 也是对自己能力的提升
  爬虫熟识的html解析库Beautifulsoup4,元素的定位上用法也类似以上两者,一通百通!
  selenium元素定位
  WebDriver提供了一系列的定位符以便使用元素定位方法。常见的定位符有以下几种:
  id
  class name
  name
  tag
  link text
  partial link text
  xpath
  css selector
  而针对元素定位,selenium又分为find_element_by和find_elements_by。即找到一个元素和找到所有元素。
  针对find_elements_by,我们又可以针对找到的元素,我们又可以像python操作list一样进行切片,筛选等操作。
  我们以百度为例,介绍以上方法:
  下来我们用代码针对百度进行演示
   # -*- coding: utf-8 -*-
  # @Author   : 王翔
  # @JianShu  : 清风Python
  # @Date     : 2019/6/19 23:40
  # @Software : PyCharm
  # @version  :Python 3.7.3
  # @File     : Day_3.1_chrome_option_warning.py
  from selenium import webdriver
  import time
  options = webdriver.ChromeOptions()
  options.add_argument('window-size=800,600')
  options.add_argument('disable-infobars')
  driver = webdriver.Chrome(options=options)
  driver.get("http://www.baidu.com")
  # link_text 定位
  driver.find_element_by_link_text('新闻').click()
  time.sleep(1)
  driver.back()
  # id 定位
  driver.find_element_by_id("kw").send_keys("id 定位|")
  time.sleep(1)
  # class name 定位
  driver.find_element_by_class_name("s_ipt").send_keys("class name 定位|")
  time.sleep(1)
  # name 定位
  driver.find_element_by_name("wd").send_keys("name 定位|")
  time.sleep(1)
  # css 定位
  driver.find_element_by_css_selector("#kw").send_keys("css 定位|")
  time.sleep(1)
  # xpath 定位
  driver.find_element_by_xpath("//input[@id='kw']").send_keys(" xpath 定位|")
  time.sleep(1)
  driver.quit()
  效果如下:
  几种定位方法演示

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理

【福利】填问卷 送2019精选测试大礼包+接口测试实战课程!

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2019, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道