我正在寻找对Nightly浏览器(FireFox 64bit)执行Selenium 2测试。它使用Selenium IDE(v1.8.1)记录得很好。使用IDE它也可以很好地播放。然后我将代码导出为TestNG格式。顺便说一句,我已经加载了Webdriver Backed插件,因此它导出了Selenium 2版本的WebDriver代码。我遇到的问题是,当我将代码导出到TestNG格式(Java)并执行它时,断言永远不会在屏幕上找到文本。它执行正常所以它不是代码没有转换。它似乎与断言有关。如果我从IDE插件中播放它,它会找到文本并断言就好了,但是只要它在Java中执行它就会失败所有的断言。对可能发生的事情的任何想法。我的代码如下。非常感谢!
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import static junit.framework.Assert.*;
import com.thoughtworks.selenium.Selenium;
public class TestWithConfig {
WebDriver driver;
Selenium selenium;
@BeforeMethod
public void startSelenium() {
driver = new FirefoxDriver();
selenium = new WebDriverBackedSelenium(driver,
"http://en.wikipedia.org/wiki/Main_Page");
}
@AfterMethod
public void stopSelenium() {
driver.close();
}
@Test
public void testTest() {
selenium.setSpeed("600");
selenium.open("/wiki/Main_Page");
assertTrue("face not found",selenium.isTextPresent("face"));
selenium.click("link=Contents");
selenium.waitForPageToLoad("30000");
assertTrue("Below not found",selenium.isTextPresent("Below"));
selenium.click("link=Toolbox");
selenium.click("link=What links here");
selenium.waitForPageToLoad("30000");
assertTrue("Pages not found",selenium.isTextPresent("Pages that link to"));
selenium.click("link=exact:Talk:Wine");
selenium.waitForPageToLoad("30000");
assertTrue("Some not found",selenium.isTextPresent("Some"));
}
}
答案 0 :(得分:1)
由于您使用selenium 2和webdriver,Assert的工作方式略有不同。我可以看到你使用WebDriverBackedSelenium。但请记住。那不是selenium2。这只是一种缓解硒的方法2.我会用这样的东西。
WebElement tooltip = driver.findElement(By.xpath("the xpath of the element"));
assertNotNull("Name:","IP Address:",tooltip);
我在这里做的是。我正在寻找tooltip.inside工具提示,有两个主要标签保持不变:名称和IP地址:所以我正在测试工具提示中是否存在这些单词。输出应为Name:IP Address:。这告诉我答案是真的。