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

 1 # !/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 from selenium import webdriver
 4 import time
 5
 6 __author__ = "No.1 优测"
 7
 8 # webdriver 定位元素的八种常用方法
 9
10
11
12 browser = webdriver.Firefox()
13 url = "http://cn.bing.com/"
14 browser.get(url)
15 time.sleep(3)
16
17 # 1/find element by name
18 browser.find_element_by_name("q").send_keys("python")
19 time.sleep(2)
20 browser.find_element_by_id("sb_form_go").click()
21 time.sleep(2)
22 browser.back()
23 time.sleep(2)
24 # 2/find element by id
25 browser.find_element_by_id("sb_form_q").send_keys("python")
26 time.sleep(2)
27 browser.find_element_by_id("sb_form_go").click()
28 time.sleep(2)
29 browser.back()
30 time.sleep(2)
31
32 # 3/find element by class name
33 browser.find_element_by_class_name("b_searchbox").send_keys("python")
34 time.sleep(2)
35 browser.find_element_by_id("sb_form_go").click()
36 time.sleep(2)
37 browser.back()
38 time.sleep(2)
39
40 # 4/find element by tag name
41 browser.find_element_by_tag_name("input").send_keys("python")
42 time.sleep(2)
43 browser.find_element_by_id("sb_form_go").click()
44 time.sleep(2)
45 browser.back()
46 time.sleep(2)
47
48 # 5/find element by css
49 browser.find_element_by_css_selector("input[title=\"输入搜索词\"]").send_keys("python")
50 time.sleep(2)
51 browser.find_element_by_id("sb_form_go").click()
52 time.sleep(2)
53 browser.back()
54 time.sleep(2)
55
56 # 6/find element by xpath
57 browser.find_element_by_xpath("//input[@id = ‘sb_form_q‘]").send_keys("selennium")
58 time.sleep(2)
59 browser.find_element_by_id("sb_form_go").click()
60 time.sleep(2)
61 browser.back()
62 time.sleep(2)
63
64 # 7/find element by link text
65 browser.find_element_by_link_text("词典").click()
66 time.sleep(2)
67 browser.find_element_by_id("sb_form_go").click()
68 time.sleep(2)
69 browser.back()
70 time.sleep(5)
71
72 # 8/find element by partial link text
73 browser.find_element_by_partial_link_text("地").click()
74 time.sleep(2)
75 browser.back()
76 time.sleep(2)
77
78 browser.find_element_by_id("sb_form_go").click()
79 time.sleep(2)
80 browser.find_element_by_id("sb_form_go").click()
81 time.sleep(2)
82 browser.back()
83 time.sleep(2)
84 browser.quit()

2、find elements方法:

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

准备html文件:

 1 <html>
 2     <head>
 3         <meta http-equiv="content-type" content="text/html;charset=utf-8" />
 4         <title>Checkbox</title>
 5         <script type="text/javascript" async="" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
 6         <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />
 7         <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
 8     </head>
 9     <body>
10         <h3>checkbox</h3>
11         <div class="well">
12             <form class="form-horizontal">
13                 <div class="control-group">
14                     <label class="control-label" for="c1">checkbox1</label>
15                     <div class="controls">
16                         <input type="checkbox" id="c1" />
17                     </div>
18                 </div>
19                 <div class="control-group">
20                     <label class="control-label" for="c2">checkbox2</label>
21                     <div class="controls">
22                         <input type="checkbox" id="c2" />
23                     </div>
24                 </div>
25                 <div class="control-group">
26                     <label class="control-label" for="c3">checkbox3</label>
27                     <div class="controls">
28                         <input type="checkbox" id="c3" />
29                     </div>
30                 </div>
31
32                 <div class="control-group">
33                     <label class="control-label" for="r">radio</label>
34                     <div class="controls">
35                         <input type="radio" id="r1" />
36                     </div>
37                 </div>
38
39                 <div class="control-group">
40                     <label class="control-label" for="r">radio</label>
41                     <div class="controls">
42                         <input type="radio" id="r2" />
43                     </div>
44                 </div>
45             </form>
46         </div>
47     </body>
48 </html>

 1 #!/usr/bin/env python
 2 #-*- coding:utf-8 -*-
 4
 5 import selenium
 6 from selenium import  webdriver
 7 import time
 8 import os
 9 # 使用绝对路径用normpath方法,使用相对路径用abspath方法
10 url = "file:///"+os.path.normpath("C:\Users\Administrator\Desktop\checkbox.html")
11 browser = webdriver.Firefox()
12 browser.get(url)
13 checkboxs = browser.find_elements_by_css_selector("input[type = checkbox]")
14 for checkbox in checkboxs:
15     checkbox.click()
16 time.sleep(2)
17 #取消最后一个按钮选择
18 browser.find_elements_by_css_selector("input[type = checkbox]").pop().click()
19 time.sleep(2)
20 browser.quit()

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

时间: 2024-08-26 23:05:53

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

python+selenium—webdriver入门(一)

一.浏览器最大化 二.设置浏览器分辨率大小 三.打印页面title 四.打印URL 五.控制浏览器前进或后退 #!/usr/bin/env python#-*- coding:utf-8 -*- from selenium import webdriverimport time browser = webdriver.Firefox() #浏览器最大化 browser.maximize_window() #设置浏览器分辨率大小browser.set_window_size(800,600) #访

python selenium webdriver入门基本操作

未经作者允许,禁止转载! from selenium import webdriver import time driver=webdriver.Chrome() driver.get('http://www.baidu.com')#进入百度首页 driver.maximize_window()#窗口最大化 time.sleep(1) driver.set_window_size(480,600)#窗口大小变化 time.sleep(1) driver.maximize_window() tim

python+selenium webdriver 自动化测试(一)

作为一个刚刚接触python,第一次编程,第一次试着去做自动化的小渣渣,借此地来见证自己的进步,也许每一步对于别人来说微不足道, 但是对于自己来说,是无数次思考之后才能迈出的一步,很吃力,也同样很欣慰.废话不多说,进入主题. 我用的是python+selenium webdriver来搭建自动化框架,对于python语言,不熟悉,只是粗略的看了一遍书,不知道该编什么,也不知道怎么编,请教大牛后,直接上路,不纠结,实战中可以学会更多.推荐一本书,虫师的<selenium webdriver (py

python selenium系列(二)元素定位方式

一 前言 元素定位,是操作元素的第一步,也是WebUI自动化的难点和核心. 二 元素定位方法 selenium提供了内置的方法完成对待操作元素的定位,主要分为8类,其中,每类又可细分为定位单个元素和定位多个元素,另外还提供了2个私有方法.详细如下: 定位单个元素 ·         find_element_by_id ·         find_element_by_name ·         find_element_by_xpath ·         find_element_by_

Python+Selenium笔记(二):配置谷歌+IE环境

#有的时候可能要访问外国的网站下载资料或工具,这时可能出现各种问题,例如谷歌人机验证显示不了.网站打不开等,建议使用一个FQ软件 下载免费版的就行了,土豪请随意.下载后直接安装就行了 http://www.softpedia.com/get/Internet/Servers/Proxy-Servers/Lantern.shtml (一)  设置IE (1)   http://docs.seleniumhq.org/download/  下载IEDriverServer.(建议下载32位的,64位

用Python selenium+webdriver的一个简单的登录自动化测试--豆丁网登录测试

#coding=utf-8 from selenium import webdriver #from selenium.webdriver.remote import switch_to #from selenium.webdriver.common import alert #import unittest  import time,os def users_zidian():  #用户名用例用一个字典实现参数化调用#     users={'zhengshuheng':'123456','[

python selenium webdriver处理浏览器滚动条

用键盘右下角的UP,DOWN按键来处理页面滚动条 这种方法很灵活用起来很方便!!!! from selenium import webdriver import time from selenium.webdriver.common.keys import Keys #访问百度 driver=webdriver.Chrome() driver.get("http://www.baidu.com") #搜索 driver.find_element_by_id("kw"

Python简单爬虫入门二

接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们BeautifulSoup的基本结构如下 #!/usr/bin/env python # -*-coding:utf-8 -*- from bs4 import BeautifulSoup import requests headers = { 'User-Agent':'Mozilla/5.0 (Win

python+selenium webdriver 如何处理table

Table对象是自动化测试中经常需要处理的对象.由于webdriver中没有专门的table类,所以我们需要简单的封装出一个易用易扩展的Table类来帮助简化代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59