Pythonスクリプト制御のWebDriver常用操作テスト対象の属性と内容を取得する
9598 ワード
テストケースシーン
テスト対象のコンテンツを取得することは、フロントエンド自動化テストで必ず使用される技術です.たとえば、ページにヒントが表示されているかどうかを判断するには、このヒントオブジェクトを見つけて、その中の文字を取得し、予想と比較する必要があります.Webdriverでelementを使用する.attribute()メソッドはdom要素(テストオブジェクト)のプロパティを取得します.
テストオブジェクトのプロパティを取得することで、オブジェクトの位置付けをよりよくすることができます.例えば、ページには多くのclassが「btn」のdivであり、title属性を持つdivの1つを位置決めする必要があります.selenium-webdriverはtitleを直接使用してオブジェクトを位置決めすることはサポートされていないため、classがbtnであるdivをすべて見つけてから、これらのdivを遍歴して、これらのdivのtitle属性を取得し、特定のtitle属性のdivを発見したら、このdivに戻るしかありません.Webdriverではelementを使用します.text()メソッドはdomノードのコンテンツ(text)を返すことができる.
Pythonスクリプト
テスト対象のコンテンツを取得することは、フロントエンド自動化テストで必ず使用される技術です.たとえば、ページにヒントが表示されているかどうかを判断するには、このヒントオブジェクトを見つけて、その中の文字を取得し、予想と比較する必要があります.Webdriverでelementを使用する.attribute()メソッドはdom要素(テストオブジェクト)のプロパティを取得します.
テストオブジェクトのプロパティを取得することで、オブジェクトの位置付けをよりよくすることができます.例えば、ページには多くのclassが「btn」のdivであり、title属性を持つdivの1つを位置決めする必要があります.selenium-webdriverはtitleを直接使用してオブジェクトを位置決めすることはサポートされていないため、classがbtnであるdivをすべて見つけてから、これらのdivを遍歴して、これらのdivのtitle属性を取得し、特定のtitle属性のdivを発見したら、このdivに戻るしかありません.Webdriverではelementを使用します.text()メソッドはdomノードのコンテンツ(text)を返すことができる.
Pythonスクリプト
テスト用HTMLコード: <html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>attribute</title>
<script type="text/javascript" async="" src="http://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 type="text/javascript">
$(document).ready(function(){
$('#tooltip').tooltip({"placement": "right"});
});
</script>
</head>
<body>
<h3>attribute</h3>
<div class="row-fluid">
<div class="span6">
<a id="tooltip" href="#" data-toggle="tooltip" title="watir-webdriver better than selenium-webdriver">hover to see tooltip</a>
</div>
</div>
</body>
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
</html>
テスト用Pythonコード:# coding=gbk
'''
Created on 2013 12 15
@author: Administrator
'''
from selenium import webdriver
from time import sleep
import os
if 'HTTP_PROXY' in os.environ:del os.environ['HTTP_PROXY']
# HTML
dr = webdriver.Firefox()
file_path = 'file:///' + os.path.abspath('attribute.html')
dr.get(file_path)
tooltips = dr.find_element_by_id('tooltip')
tooltip = tooltips.get_attribute('data-original-title')
print tooltip
print tooltips.text
comparation = 'Python-webdriver better than selenium-webdriver'
# tooltip , , case is pass。 ,
if tooltip == comparation:
print 'case is pass'
sleep(5)
dr.quit()
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>attribute</title>
<script type="text/javascript" async="" src="http://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 type="text/javascript">
$(document).ready(function(){
$('#tooltip').tooltip({"placement": "right"});
});
</script>
</head>
<body>
<h3>attribute</h3>
<div class="row-fluid">
<div class="span6">
<a id="tooltip" href="#" data-toggle="tooltip" title="watir-webdriver better than selenium-webdriver">hover to see tooltip</a>
</div>
</div>
</body>
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
</html>
# coding=gbk
'''
Created on 2013 12 15
@author: Administrator
'''
from selenium import webdriver
from time import sleep
import os
if 'HTTP_PROXY' in os.environ:del os.environ['HTTP_PROXY']
# HTML
dr = webdriver.Firefox()
file_path = 'file:///' + os.path.abspath('attribute.html')
dr.get(file_path)
tooltips = dr.find_element_by_id('tooltip')
tooltip = tooltips.get_attribute('data-original-title')
print tooltip
print tooltips.text
comparation = 'Python-webdriver better than selenium-webdriver'
# tooltip , , case is pass。 ,
if tooltip == comparation:
print 'case is pass'
sleep(5)
dr.quit()