Facebookにログインするテストケースを作成する必要があります。では、テストを続行するために、テストユーザーにFacebookでログインするように強制するにはどうすればよいですか?
これが私が望む手順です:
ユーザーがリンクをクリックすると、
Facebookログインにリダイレクトします。
ページの内容を確認してください。
Facebookにログインするテストケースを作成する必要があります。では、テストを続行するために、テストユーザーにFacebookでログインするように強制するにはどうすればよいですか?
これが私が望む手順です:
ユーザーがリンクをクリックすると、
Facebookログインにリダイレクトします。
ページの内容を確認してください。
次のアプローチを使用します。1) クリックしたいリンクの css セレクターを見つけます。
String cssSelector = ..blablalba..;
//これで、見つけたリンクをクリックできるようになりました
driver.findElement(By.cssSelector(cssSelector)).click();
//または js を直接使用:
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("var x = $(\'"+cssSelector+"\');");
stringBuilder.append("x.click();");
js.executeScript(stringBuilder.toString());
2) ページのコンテンツを確認するには、fb ページでいくつかの Web 要素を見つけて、その要素がページに存在することを確認します。
input.findElements(By.xpath("//xpath")).size() > 0
//or by css selector:
input.findElements(By.cssSeector("html>...blablabla...")).size() > 0
driver.findElement(By.cssSelector("html>...blablabla...")).isDisplayed()
または、流暢な待機を使用して、besic 要素が fb ログイン ページに表示されるのを待つだけです。
public WebElement fluentWait(final By locator){
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(
new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
}
);
return foo; } ;
これがお役に立てば幸いです)