- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2019-05-24T22:50:23+00:00","default:wikiadmin","wikiadmin")
#author("2019-08-10T23:51:32+00:00","default:wikiadmin","wikiadmin")
-自動テストについてまとめたページ
#contents
*gatling [#cd80eefd]
**自分でソース作成 [#y1f28046]
**ブラウザ記憶してソース [#b2c359db]
*プロダクト [#r5b127ee]
**Selenium [#kc56310a]
***Xpath [#t94e85c4]
***CSSSelector [#rfb9d7e0]
JSoupでもほぼ等価なのでこちらを推奨
|td#MAINAREA01 > div.tp-box-05 > div > div > p.tp-text-01|階層順序を厳格に指定する場合|
|div[class*='_middle_']|クラス名部分一致|
|div[class^='prefix']|クラス名前方一致|
|div[class$='_suffix']|クラス名後方一致|
カスタマイズ属性で絞る
|div[data-custom='xxxx']|通常の属性ならhrefなりに変えれば良い|
***一つに絞れない時はループで回して強引に [#bc10c725]
List<WebElement> webElementList =driver.findElements(By.cssSelector("div[class^='prefix_']"));
WebElement login = webElementList.stream().filter(webElement -> webElement.getText().contains("ログイン")).findFirst().get();
login.click();
***リンクのテキストで取得 [#ga8e02d3]
By.linkText("hogehoge")
**JSoup [#raac5768]
|クラスで複数取得|Elements masthead = doc.select("div.masthead");|
|クラスで単数取得|Element masthead = doc.select("div.masthead").first();|
|階層構造で複数取得|Elements resultLinks = doc.select("h3.r > a"); // direct a after h3|
|ファイルから読み込み|Document doc = Jsoup.parse(new File("/tmp/input.html"), "UTF-8", "http://example.com/");|
**HTMLUnit [#ea6e5f7a]
-value属性をセット。value以外にもセットできる。
HtmlElement input = page.getHtmlElementById(id);
input.setAttribute("value", value);
-webclient.getPageの引数にfile://を指定するとローカルのファイルも指定可能だが、相対パスのファイルを全部用意しないといけないので面倒。
webClient.getPage("file:///Users/
**XPath [#xc1e5e21]
-getFirstByXpathを使うと一個だけ取得できる
|//a[@id='idname']|AタグのIDで抽出|
|//a[@href='/login.html']|Aタグのリンク先で抽出|
|//input[@type='submit']|type=submitのタグを取得|
|//input[@value='検索']|検索のinputタグを取得|
|//td[contains(.,'検索したい文字列')]|検索したい文字列が含まれているものを取得|
|img[alt='ログアウト']|altで検索|
|//a[text()='ログアウト']"|Aのテキストで検索|
-複数取得する場合はLIST
|final HtmlDivision div = (HtmlDivision) page.getByXPath("//div[@name='John']").get(0);|無理やりキャスト|
**xpathの検証 [#fe0b93a0]
chromeのコンソールで
$x('xpath')でOK!
**css selectorの検証 [#b03210c4]
chromeのコンソールで
$('div div div p')
**htmlunit [#x50af09f]
主にPHPバッチで利用
|クラスやID指定|div[class=tbl-pc]|
|親子関係|table tbody tr td|
*Selenium(java ラッパーで Selenide がある) [#k23e2daf]
** [#m92a49fb]
**Macでwebdriver [#gd9dbecb]
***成功バージョン [#kd34fd8d]
-chromedriverを入れる
brew update
brew install chromedriver
-ドライバーの位置を指定する
-MACで以下のコマンドにてインストールするとデフォルトの場所にインストールされる
brew tap homebrew/cask && brew cask install chromedriver
/usr/local/binに入るので手動で入れるならそこに置く
-WindowsだとPATHの通るところにおいておけばよい。
C:\Users\xxx\AppData\Local\Microsoft\WindowsApps
***失敗バージョン [#p20f8e2a]
brew update
brew install selenium-server-standalone
brew install chromedriver
だとだめ!jarを直接実行する。
java -Dwebdriver.chrome.bin="/Applications/Google Chrome.app" -Dwebdriver.chrome.drir=/usr/local/bin/chromedriver -jar selenium-server-standalone-3.4.0.jar
しかし上記のchromedriverさえインストールできればあとはサーバー不要なのであった!
**JMeter [#hfe22ad2]
**Geb(groovy) [#ac422465]