我正在使用Selenium WebDriver + TestNG为twitter编写trsts。 我的测试在Chrome,FireFox和IE中完美运行,但是当我尝试在PhantomJS中运行它时出现问题:
点击“Tweet”按钮,显示New Tweet Popup的div元素变为可见。这在PhantomJS中不会发生
代码如下:
headerBlock.clickTweetButton();
//Waiting for New Tweet Popup visible - this is where test fails
waitForNewTweetPopupVisible();
newTweetPopup.addNewTweet(text);
//Code for used methods
public NewTweetPopup waitForNewTweetPopupVisible() {
waitForElementVisible(15, newTweetPopup);
Reporter.log("<p>Wait for newTweetPopup visibility</p>");
return newTweetPopup;
}
protected void waitForElementVisible(int timeout, WebElement element) {
WebDriverWait wait = new WebDriverWait(driver, timeout);
wait.until(ExpectedConditions.visibilityOf(element));
}
public void clickTweetButton() {
click(tweetButton);
Reporter.log("<p>Click tweetButton</p>");
}
protected void click(WebElement elem) {
waitForElementVisible(15, elem);
elem.click();
}
测试失败时拍摄的屏幕截图确认弹出窗口从未显示过。
我认为问题是当点击PhantomJS中的按钮时,弹出div的javascript不会触发。
有人有任何建议如何克服这个问题吗?