Python 스크립트가 제어하는 WebDriver에서 자주 사용하는 간단한 대상 포지셔닝

15210 단어 webdriver
이 부분의 내용은 WebDriver에서 원소를 포지셔닝하는 방법의 시범이며, Selenium에서 Selenese 원소를 포지셔닝 명령하는 WebDriver에서 사용하는 방법의 결합이다.
Selenium에서 요소 배치 방법 복습은 다음을 참조하십시오.

웹 자동화를 위한 제로 비용 테스트 - Selenium 기반 제4장 Selenium 명령


 

테스트 용례 장면


 
테스트 대상의 포지셔닝과 조작은 웹드라이브의 핵심 내용인데 그 중에서 조작은 포지셔닝의 기초 위에 세워져 있기 때문에 대상의 포지셔닝은 더욱 중요하다.
대상을 포지셔닝하는 목적은 일반적으로 다음과 같은 몇 가지가 있다
  • 운영 대상
  • 획득 대상의 속성, 예를 들어 테스트 대상의class 속성,name 속성 등
  • 객체 획득text
  • 획득한 대상의 수량
  • 웹driver는 일련의 대상 포지셔닝 방법을 제공하는데, 자주 사용하는 것은 다음과 같은 몇 가지가 있다
  • id
  • name
  • class name
  • link text
  • partial link text
  • tag name
  • xpath
  • css selector

  • 파이썬 스크립트


    예를 들어 다음과 같은 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>

     
     
    파이썬 스크립트는 다음과 같습니다.
     
    # 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()

    좋은 웹페이지 즐겨찾기