python+selenium—webdriver入门(二)
本文中主要介绍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入门(二)的更多相关文章
- python selenium webdriver入门基本操作
python selenium webdriver入门基本操作 未经作者允许,禁止转载! from selenium import webdriver import time driver=webdr ...
- python+selenium—webdriver入门(一)
一.浏览器最大化 二.设置浏览器分辨率大小 三.打印页面title 四.打印URL 五.控制浏览器前进或后退 #!/usr/bin/env python#-*- coding:utf-8 -*- fr ...
- Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接
今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...
- Python+Selenium基础入门及实践
Python+Selenium基础入门及实践 32018.08.29 11:21:52字数 3220阅读 23422 一.Selenium+Python环境搭建及配置 1.1 selenium 介绍 ...
- Python Selenium Webdriver常用方法总结
Python Selenium Webdriver常用方法总结 常用方法函数 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: m ...
- Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结
由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdrive ...
- windows操作系统python selenium webdriver安装
这几天想搞一个爬虫,就来学习一下selenium,在网上遇见各种坑,特写一篇博文分享一下selenium webdriver的安装过程. 一.安装selenium包 pip install selen ...
- Python + Selenium WebDriver Api 知识回顾
一直再用 Selenium WebDriver 但是用的都比较零散,也没有做过总结,今天借此机会,整理一下,方便大家使用时查阅 webDriver 的属性 ['CONTEXT_CHROME', 'C ...
- python + selenium WebDriver的环境配置
想试用python语言来学习selenium WebDriver,首先需要搭建一个测试环境,从python安装到浏览器插件配置的详细步骤,总结如下: 一.python环境配置 1.从官网下载最新的一个 ...
随机推荐
- npm i 出错
npm i npm ERR! code ECONNRESET npm ERR! errno ECONNRESET npm ERR! network request to https://registr ...
- sxstrace启动.bat
@echo offset dd=%date:~8,2%set mm=%date:~5,2%set yy=%date:~0,4%set Tss=%TIME:~6,2%set Tmm=%TIME:~3,2 ...
- TCP/IP学习20180701-数据链路层-IP子网寻址
IP-子网寻址IP地址是:网络号+主机号现在主机号都要求有子网号所以IP地址就变成了网络号+子网号+主机号例如一个B类地址:210.30.109.134210.30是网络号109是子网号134是主机号 ...
- FreeBsd网络性能优化方案sysctl
以下是阿盛的配置 sysctl net.inet.tcp.msl= sysctl net.inet.tcp.mssdflt= sysctl net.inet.tcp.minmss= sysctl ne ...
- php多维数组排序
数组 array(11) { [0] => array(7) { ["food_id"] => string(2) "31" ["food ...
- python 正则表达式 RE模块汇总记录
re.compile(pattern, flags=0) re.search(pattern, string, flags=0) re.match(pattern, string, flags=0) ...
- 关于PS的操作
1.移动工具 Ctrl+J:拷贝图层 Ctrl+T:自由变换调整大小 Alt+Shift:全选 Ctrl+G:图层编组 Alt+Delete:选中图层填充当前颜色 Ctrl+Alt+Z:后退一步 2. ...
- SpringData中使用@Modifying注解实现修改操作
通过@Modifying可以实现修改和删除操作 @Modifying @Query("update Person set email = :email where lastName =:la ...
- get_time
def get_current_time(): #将python的datetime转换为unix时间戳 dtime = datetime.datetime.now() un_time = time.m ...
- 2019/1/15 python基础学习
一.列表切片a.快捷方式:spam[:3] ----表示从列表开始到3位置结束:拿到的内容是0,1,2没有3位置上的数字.spam[3:]b.列表的拼接.复制: 拼接:使用 + [1,2,3]+['A ...