0

我正在寻找针对 Nightly 浏览器(FireFox 64 位)执行 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"));
    }

}
4

1 回答 1

1

由于您使用 selenium 2 和 webdriver,Assert 的工作有点不同。我可以看到您使用 WebDriverBackedSelenium。但是请记住。那不是硒2。这只是一种轻松进入 selenium 2 的方法。我会使用这样的东西。

WebElement tooltip = driver.findElement(By.xpath("the xpath of the element"));

assertNotNull("Name:","IP Address:",tooltip);

我在这里做的是。我正在寻找一个工具提示。在该工具提示中,有两个主要标签保持不变:名称和 IP 地址:。所以我正在测试工具提示中是否存在这些词。输出应为名称:IP 地址:。这告诉我答案是正确的。

于 2012-06-25T23:04:30.287 回答