如何让Selenium 2 webdriver与Nightly一起使用(Firefox 64位)

时间:2012-06-23 03:00:17

标签: selenium-webdriver testng

我正在寻找对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"));
    }

}

1 个答案:

答案 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:。这告诉我答案是真的。