#はじめに
自分がnode.js環境でwebdriverを使ってテスト書きたいなあと思って調べてみると、意外とJSの記事が少なくて、また触る機会がありそうなのでとりあえずメモ的な形でいくつか残そうかと思い、記事を作りました。
まず、selenium-webdriverをimportしました。
webdriver = require('selenium-webdriver')
{By} = webdriver
###要素を見つける
classとかテキストから見つけるのが一般的な感じがします。
elems ={
hoge: By.css('.hogeClass') #hogeClassというクラスを見つける
hogehoge: By.xpath("//div[text()='hogehoge']") #hogehogeというテキストを持つdivを見つける
}
###要素の確認
@driver.findElement(elems.hoge)
###要素をクリックする
@driver.findElement(elems.hoge).click()
###Inputに書き込んでENTER
@driver.findElement(elems.hoge).sendKeys('name', webdriver.Key.ENTER)
###マウスを要素の上まで動かす
@driver.actions().mouseMove(elems.hoge).perform()
###ドラッグアンドドロップ
@driver.actions().dragAndDrop(elems.hoge, {x: 150, y: 0}).perform()
###要素を数える
(これはあまり自信がない)
@driver.findElements(elems.hoge).then (els) => {
@driver.findElement(By.xpath("//a[text()='hogehoge']")).findElement(By.tagName('hoge')).getText().then (text) => {
return els.length.toString()
}
}