本文中主要介绍webdriver常见的对象定位方法

一、对象定位的目的

二、常见的对象定位方法


一、对象定位的目的:

1、操作对象

2、获得对象的属性,如:对象的class属性、name属性等

3、获得对象的text

4、获取对象的数量

二、常见的对象定位方法:

1、find element方法:

  1、id

  2、name

  3、class name

  4、tag name

  5、css定位

  6、xpath定位

  7、link text

  8、partial link text

 # !/usr/bin/env python
# -*- coding:utf-8 -*-
from selenium import webdriver
import time __author__ = "No.1 优测" # webdriver 定位元素的八种常用方法 browser = webdriver.Firefox()
url = "http://cn.bing.com/"
browser.get(url)
time.sleep(3) # 1/find element by name
browser.find_element_by_name("q").send_keys("python")
time.sleep(2)
browser.find_element_by_id("sb_form_go").click()
time.sleep(2)
browser.back()
time.sleep(2)
# 2/find element by id
browser.find_element_by_id("sb_form_q").send_keys("python")
time.sleep(2)
browser.find_element_by_id("sb_form_go").click()
time.sleep(2)
browser.back()
time.sleep(2) # 3/find element by class name
browser.find_element_by_class_name("b_searchbox").send_keys("python")
time.sleep(2)
browser.find_element_by_id("sb_form_go").click()
time.sleep(2)
browser.back()
time.sleep(2) # 4/find element by tag name
browser.find_element_by_tag_name("input").send_keys("python")
time.sleep(2)
browser.find_element_by_id("sb_form_go").click()
time.sleep(2)
browser.back()
time.sleep(2) # 5/find element by css
browser.find_element_by_css_selector("input[title=\"输入搜索词\"]").send_keys("python")
time.sleep(2)
browser.find_element_by_id("sb_form_go").click()
time.sleep(2)
browser.back()
time.sleep(2) # 6/find element by xpath
browser.find_element_by_xpath("//input[@id = 'sb_form_q']").send_keys("selennium")
time.sleep(2)
browser.find_element_by_id("sb_form_go").click()
time.sleep(2)
browser.back()
time.sleep(2) # 7/find element by link text
browser.find_element_by_link_text("词典").click()
time.sleep(2)
browser.find_element_by_id("sb_form_go").click()
time.sleep(2)
browser.back()
time.sleep(5) # 8/find element by partial link text
browser.find_element_by_partial_link_text("地").click()
time.sleep(2)
browser.back()
time.sleep(2) browser.find_element_by_id("sb_form_go").click()
time.sleep(2)
browser.find_element_by_id("sb_form_go").click()
time.sleep(2)
browser.back()
time.sleep(2)
browser.quit()

2、find elements方法:

适用情况:1、批量处理元素;2、批量获取页面元素,过滤部分元素进行定位;

准备html文件:

 <html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>Checkbox</title>
<script type="text/javascript" async="" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
</head>
<body>
<h3>checkbox</h3>
<div class="well">
<form class="form-horizontal">
<div class="control-group">
<label class="control-label" for="c1">checkbox1</label>
<div class="controls">
<input type="checkbox" id="c1" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="c2">checkbox2</label>
<div class="controls">
<input type="checkbox" id="c2" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="c3">checkbox3</label>
<div class="controls">
<input type="checkbox" id="c3" />
</div>
</div> <div class="control-group">
<label class="control-label" for="r">radio</label>
<div class="controls">
<input type="radio" id="r1" />
</div>
</div> <div class="control-group">
<label class="control-label" for="r">radio</label>
<div class="controls">
<input type="radio" id="r2" />
</div>
</div>
</form>
</div>
</body>
</html>
 #!/usr/bin/env python
#-*- coding:utf-8 -*- import selenium
from selenium import webdriver
import time
import os
# 使用绝对路径用normpath方法,使用相对路径用abspath方法
url = "file:///"+os.path.normpath("C:\Users\Administrator\Desktop\checkbox.html")
browser = webdriver.Firefox()
browser.get(url)
checkboxs = browser.find_elements_by_css_selector("input[type = checkbox]")
for checkbox in checkboxs:
checkbox.click()
time.sleep(2)
#取消最后一个按钮选择
browser.find_elements_by_css_selector("input[type = checkbox]").pop().click()
time.sleep(2)
browser.quit()

此文参考http://www.cnblogs.com/fnng/p/3190966.html

python+selenium—webdriver入门(二)的更多相关文章

  1. python selenium webdriver入门基本操作

    python selenium webdriver入门基本操作 未经作者允许,禁止转载! from selenium import webdriver import time driver=webdr ...

  2. python+selenium—webdriver入门(一)

    一.浏览器最大化 二.设置浏览器分辨率大小 三.打印页面title 四.打印URL 五.控制浏览器前进或后退 #!/usr/bin/env python#-*- coding:utf-8 -*- fr ...

  3. Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接

    今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...

  4. Python+Selenium基础入门及实践

    Python+Selenium基础入门及实践 32018.08.29 11:21:52字数 3220阅读 23422 一.Selenium+Python环境搭建及配置 1.1 selenium 介绍 ...

  5. Python Selenium Webdriver常用方法总结

    Python Selenium Webdriver常用方法总结 常用方法函数 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: m ...

  6. Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结

    由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdrive ...

  7. windows操作系统python selenium webdriver安装

    这几天想搞一个爬虫,就来学习一下selenium,在网上遇见各种坑,特写一篇博文分享一下selenium webdriver的安装过程. 一.安装selenium包 pip install selen ...

  8. Python + Selenium WebDriver Api 知识回顾

    一直再用 Selenium WebDriver 但是用的都比较零散,也没有做过总结,今天借此机会,整理一下,方便大家使用时查阅 webDriver  的属性 ['CONTEXT_CHROME', 'C ...

  9. python + selenium WebDriver的环境配置

    想试用python语言来学习selenium WebDriver,首先需要搭建一个测试环境,从python安装到浏览器插件配置的详细步骤,总结如下: 一.python环境配置 1.从官网下载最新的一个 ...

随机推荐

  1. 【算法和数据结构】_16_小算法_IntToStr: 将整型数据转换为字符串

    /* IntToStr: 将整型数据转换为字符串 */ #include <stdio.h> void int_to_str(const unsigned long int i_numbe ...

  2. 【rabbitmq】Centos7 下安装rabbitmq

    rabbitmq安装 rabbitmq的安装依赖erlang,首先应该先安装erlang,然后安装rabbitmq: Step1:安装erlang erlang-rpm安装教程 选择在Centos7 ...

  3. 查看Linux内置命令和外部命令

    1. [hl@localhost ~]$ which cd /bin/cd [hl@localhost ~]$ type cd cd is a shell builtin

  4. java之try、catch、finally

    结论:try和catch相当于程序分支,finally块中不会改变变量的指针(引用地址):和final修饰的变量类似. public class Test { public static AreaRQ ...

  5. Hibernate工作原理及为什么要用?

    1.原理: 1.读取并解析配置文件    new Configuration().configure()2.读取并解析映射信息,创建SessionFactory    sf=buildSessionF ...

  6. Ubutu16.04+Cuda9.2/9.0+Cudnn7.12/7.05+TensorFlow-gpu-1.8/1.6

    目录 Ubuntu16.04 Installl 1. 安装环节 2. 安装卡死 3. NVIDIA显卡安装 2. CUDA Install 3.Cudnn7.05 Install 4.Tensorfl ...

  7. leetcode每日刷题计划-简单篇day2

    今天数模比赛爆肝&操作系统大作业 脖子疼orz先把题过了保证flag不倒..个别细节回头看吧 Num 13 罗马数字转整数 Roman to Integer 一遍提交过,开始编译出了点问题 具 ...

  8. windows密码策略

    windows域环境配置密码策略: http://www.cnblogs.com/danzhang/p/3693024.html windows配置密码策略: https://jingyan.baid ...

  9. Sql入门学习——基本语法函数

    --------使用工具navicat 快捷键操作 --------基本操作DML &DDL --------运算比较 --------数据类型 --------常用函数 --------常用 ...

  10. SSH登录启用Google二次身份验证

    一般来说,使用ssh远程登录服务器,只需要输入账号和密码,显然这种方式不是很安全.为了安全着想,可以使用GoogleAuthenticator(谷歌身份验证器),以便在账号和密码之间再增加一个验证码, ...