webdriver入門-Java

6826 ワード


どのようにwebdriverを使ってブラウザを開けばいいですか?私達がよく使うブラウザはfirefoxとIEの2種類があります。firefoxはseleniumが比較的に成熟したブラウザをサポートしています。多くの新しい特性はfirefoxに反映されます。しかし、ページのテストをすると、起動速度が遅くなりますので、起動後の運転速度は大丈夫です。
firefoxブラウザを起動します。
新しいfirefoxDriverを作成します。もしファイアフォックスブラウザがデフォルトでCディスクにインストールされていないなら、そのパスを設定する必要があります。
System.setProperty("webdriver.firefox.bin", "D:/Program Files/Mozilla firefox/firefox.exe"); 
WebDriver driver = newFirefoxDriver(); IEブラウザを起動
//Create a newindowstance of the Internet Explorer driver WebDriver=newInternetExplorer Driver()
Html Unitブラウザを起動します。
//Createa new instance of the Html Unit driver WebDriverdriver=new Html Unit Driver()
Chromeブラウザを起動します。
          ChromeDriver.exeをダウンロードしてください。
ここです
//Createa new instance of the Chromedriver
System.set Property(「webdriver.chrome.driver」、bsPath);WebDriverdriver=new ChromeDriver()
webページをテストするには、まずテストページのアドレスを開きます。例えば、http://www.baidu.com、web driverが提供するget方法は、ページを開くことができます。//And now use thedriver to visit Google driver.get(「http://www.baidu.com」)、/以下の方法driver.navigate()を呼び出すこともできます。テストシナリオは以下の通りです。package come.test.ui. demo;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.selenitorg.selenium.firefox.FirefoxDriver;impoort.impoort.oporg.oporggggggggggggggggggggggggggggggggninininininitttttttttttttttttttttttttttttttttttttttttttttttimport org.testing.annotations.AfterMethod;import org.testing.annotations.Before Method;import org.testng.annotations.Test;
public class TestWebDriver{prvate WebDriver=null;prvate String url="http://www.baidu.com"//各用例実行前にこの方法を実行します。@BeforeMethod putblic void startUp()//firefoxがディスクにインストールされていない場合は、以下のようにします。「D:/Program Files/Mozela firefox.exe」)、driver=new FirefoxDriver()///各用例実行後にこの方法を実行します@AfterMethod putblic void teardown()//退出操作driver.quit();driver=Tedriver=Proid stal=@
各種ブラウザ比較↓
Webdirverは、ブラウザのサポートHtml Unit Driverの利点:Html Unit Driverはブラウザを実際に開けないので、動作速度が速いです。FireFoxなどのブラウザでテストする自動化テストの例については、動作速度が通常遅くなります。HtmlUnit Driverはこの問題をうまく解決することができます。iptの場合、ページ要素が取り込まれないことが多いです。使用:WebDriver driver=new Html Unit Driver();
FireFox Driverの利点:FireFox Dirverはページの自動化テストによりサポートされています。直感的にページの操作をシミュレートします。JavaScriptに対するサポートも非常に充実しています。基本的にはページ上で行うすべての操作はFireFox Driverでシミュレーションできます。短所:起動が遅く、運転も遅いですが、起動後のWebdriverの操作速度は速くないですが、それでも大丈夫です。使用:WebDriver driver=new FirefoxDriver();Firefox profileの属性値は変更できます。例えば、私達は普段代理でインターネットを利用する必要があります。このように修正できます。Firefox Profile=new FirefoxProfile();
//使用エージェント
profile.set Preference(「network.proxy.type」、1)
//httpプロトコル代理配置
profile.set Preference(「network.proxy.http」、proxyIp)、profile.set Preference(「network.proxy.tpuplort」、proxyPort);
//すべてのプロトコルは、単独で構成すれば、falseに設定され、httpの構成に類似しているプロキシ構成を共通している。
profile.set Preference(「network.proxy.sharexy-usettings」、true)
//local hostに対しては代理は不要です。ここで配置しなければならないです。そうでないとwebdriverと通信できません。
profile.set Preference(「network.proxy.nouproxiess on」、「local host」)
//エージェント方式でfirefoxを起動する
FirefoxDriver ff  = new FirefoxDriver;
InternetExplorer Driverの利点:ユーザーの実際の操作を直感的にシミュレーションし、JavaScriptに対して完璧なサポートを提供する。短所:すべてのブラウザの中で最も遅い速度で、Windowsの下でしか実行できない。CSSやXATHに対するサポートも十分ではない。使用:WebDriver driver=new InternetExplorer Driver()。
元素操作↓
要素を検索
操作でページ要素WebdriverのfindElementを見つける方法は、ページのある要素を見つけるために用いられます。最も一般的な方法は、idとnameで検索します。以下にいくつかの比較的によく使われる方法を紹介します。By IDはページを仮定して、「input type=」text「name=」userNameと書きます。 id="user"/>では、このようにしてページの要素を見つけることができます。id検索では、WebElement element=driver.findElement(By.id("user");By Nameまたはname検索では、WebElement=driver.findEment(By.name("useredededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededeme""")))))))、((("""""""""""""""""""""""'user'')');By Class Nameページはこのように書かれていると仮定します。
<div class=”top”Head
HeadName
は、このようにページ要素を検索することができます。Listtop=driver.findElements(By.classme)。
By Link Textは、ページ要素がこう書かれていると仮定します。http://www.baidu.com」baidu>では、WebElement baidu=driver.findElement(By.linkText(baidu);
入力ボックスの値
入力ボックス(text field or textarea)   入力ボックスの要素が見つかりました。WebElement element=driver.findElement(By.id);入力ボックスに内容を入力します。element.sendKeys(「test」)入力ボックスをクリアします。element.clear()入力ボックスのテキストの内容を取得します。element.getText()
プルダウンメニュー
選択ボックスをドロップダウンします。選択ボックスの要素を見つけます。Select select=new Select(driver.findElement(By.id);対応する選択項目を選択:select.selectByVisible Text(「testName」)またはselect.selectByValue(「name」);対応するオプションを選択しない:select.deselectAll();select.deselectByValue(「name」)select.deselectByVisible Text(「名前」)または選択項目の値を取得します。select.getAll SelectedOptions()select.get First Selected Option()
単一選択ボックス
単一のオプション(Radio Button)は単一の選択枠の要素を見つけます。WebElement sex=driver.findElement(By.id(sex);
オプションを選択:
sex.click();あるオプションをクリアします。sex.clear()
あるオプションが選択されているかどうかを判断します。
sex.isSelected()
チェックボックス
多オプション(checkbox)の多オプション操作は単一選択と同じです。WebElement ara=driver.findElement(By.id) .”)); ara .click();ara .clear();ara .isSelected();ara .isEnbaled();
ボタン
ボタンの要素を見つけます。WebElement saveButton=driver.findElement(By.id);
ボタンをクリック:
saveButoton.click();
判断ボタンがenableかどうか:
saveButoton.isEnbaled()
左右の選択枠、すなわち左は選択可能な項目であり、選択後は右のボックスに移動し、逆も同様である。
Select name=new Select(driver.findElement);name.selectByVisible Text(「hellen」)、WebElement addName=driver.findElement(By.id(「addButton」)
ボックスをイジェクト
ポップアップダイアログ(Popup dialogs)Alert alert=driver.switTo().alert();alert.accept();alert.dissys();alert.get Text();
フォームの送信
フォーム(Form)Formの要素の操作は他の要素と同じで、要素操作が完了したらフォームに対して提出できます。WebElement sub=driver.findElement(By.id(sub);sub.lick();またはsub.submit();/フォームの提出にのみ適しています。
添付ファイルをアップロード
アップロードファイルの要素操作:WebElement picFile=driver.findElement(By.id) ”)); String filePath=「d:\report\600 x 0.jpg」、picFile .sendKeys(filePath)
マルチウィンドウ切り替え
WindowsとFraamesの切り替え
まずデフォルトのframe driver.switch Toに切り替えます。あるframe:driver.switTo().frame(leftFrame);一つのframeからもう一つのframe:driver.swindowtTotch()に切り替えます。frame(frame)
ナビゲータ
ナビゲーションは新しいページを開きます。driver.navigate().to("http://www.baidu.com」)「
履歴ナビゲーションで元のページに戻ります。driver.navigate().forward();driver.navigate().back(;
以上は簡単に紹介しました。webDriverでよくある操作について、問題があれば公式のAPI文書を見ることができます。