3

我有一个带有输入文本字段的JSP页面。

<table>
    <tr>
        <td><input type="text" id="searchText" name="searchInput"/></td>
    </tr>
</table>

我编写了一个 Selenium 测试用例来验证搜索输入文本是否存在。

public class UIRecipeListTest extends SeleneseTestBase {

    @Before
    public void setup() {
        WebDriver driver = new FirefoxDriver(
                        new FirefoxBinary(
                            new File("C:\\Program Files (x86)\\Mozilla Firefox 3.6\\firefox.exe")),
                        new FirefoxProfile()
                    );

        String baseUrl = "http://localhost:8080/RecipeProject/";
        selenium = new WebDriverBackedSelenium(driver, baseUrl);
    }

    @Test
    public void testShowRecipes() {
        verifyTrue(selenium.isElementPresent("searchText"));
        selenium.type("searchText", "salt");
    }
}

测试verifyTrue返回true。但是,selenium.type测试失败并出现以下错误:

com.thoughtworks.selenium.SeleniumException: Element searchText not found

我应该怎么做才能使测试工作?

4

1 回答 1

8

第一个参数需要是一个选择器。searchText不是有效的 CSS 或 XPath 选择器。

你会使用类似的东西selenium.type("css=input#searchText", "salt");

我还想指出,您似乎在两个版本的 Selenium 之间切换。

selenium.type(String,String)来自 Selenium 1 API。你应该保持 1 版本,如果它是 Selenium 2,你需要做类似的事情,

WebElement element = driver.findElement(By.id("searchText"))

并使用

element.sendKeys("salt");

来源:Selenium API 类型(字符串,字符串)

于 2012-12-16T05:46:55.177 回答