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 を使用していることがわかります。ただし、覚えておいてください。それはselenium2ではありません。これは、セレン 2 に慣れる方法にすぎません。私なら、このようなものを使用します。

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

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

私がここでやっていることは。ツールチップを探しています。そのツールチップ内には、同じままの 2 つの主要なラベルがあります: 名前と IP アドレス:。そのため、それらの単語がツール ヒントに存在するかどうかをテストしています。出力は Name: IP Address: のはずです。それは答えが真実であることを教えてくれます。

于 2012-06-25T23:04:30.287 に答える