Python脚本控制的WebDriver 常用操作 <八> 简单的对象定位

这一部分的内容,将是在WebDriver中,定位元素方法的演示,是将Selenium中Selenese元素定位命令的WebDriver中使用方法的结合

Selenium中元素定位方法复习可以参考:

《零成本实现Web自动化测试--基于Selenium》 第四章 Selenium 命令

 

测试用例场景


 

测试对象的定位和操作是webdriver的核心内容,其中操作又是建立在定位的基础之上,因此对象定位就越发显得重要了。

定位对象的目的一般有下面几种

  • 操作对象
  • 获得对象的属性,如获得测试对象的class属性,name属性等等
  • 获得对象的text
  • 获得对象的数量

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

  • id
  • name
  • class name
  • link text
  • partial link text
  • tag name
  • xpath
  • css selector

Python脚本


定位举例用的HTML代码如下:

 <html>

    <head>

      <meta http-equiv="content-type" content="text/html;charset=utf-8" />

      <title>Form</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>simple login form</h3>

      <form class="form-horizontal">

        <div class="control-group">

          <label class="control-label" for="inputEmail">Email</label>

          <div class="controls">

            <input type="text" id="inputEmail" placeholder="Email" name="email">

          </div>

        </div>

        <div class="control-group">

          <label class="control-label" for="inputPassword">Password</label>

          <div class="controls">

            <input type="password" id="inputPassword" placeholder="Password" name="password">

          </div>

        </div>

        <div class="control-group">

          <div class="controls">

            <label class="checkbox">

              <input type="checkbox"> Remember me

            </label>

            <button type="submit" class="btn">Sign in</button>

            <a href="#">register</a>

          </div>

        </div>

      </form>

    </body>

  </html>

 

 

Python脚本如下:

 

# coding=gbk

'''

Created on 2013年12月7日



@author: Administrator

'''

from selenium import webdriver

from time import sleep

import os

if 'HTTP_PROXY' in os.environ: del os.environ['HTTP_PROXY']



dr = webdriver.Firefox()

file_path = 'file:///'+ os.path.abspath('form.html')

print file_path



dr.get(file_path)



#id定位

dr.find_element_by_id('inputEmail').click()



#name 定位

dr.find_element_by_name('password').click()



#tagname 定位

dr.find_element_by_tag_name('form').get_attribute('class')



#class name 定位

e = dr.find_elements_by_class_name('controls')

dr.execute_script('$(arguments[0]).fadeOut().fadeIn()',e)

sleep(5)



#link text定位

link = dr.find_element_by_link_text('register')

dr.execute_script('$(arguments[0]).fadeOut().fadeIn()',link)

sleep(5)



#页面部分link文字定位

link = dr.find_element_by_partial_link_text('reg')

dr.execute_script('$(arguments[0]).fadeOut().fadeIn()',link)

sleep(5)



#css定位方法

div = dr.find_element_by_css_selector('.controls')

dr.execute_script('$(arguments[0]).fadeOut().fadeIn()',div)

sleep(5)



#xpath定位



dr.find_element_by_xpath('/html/body/form/div[3]/div/label/input').click()



sleep(5)

dr.quit()

 

你可能感兴趣的:(webdriver)