Selenium Java Webdriver:断言双引号

时间:2014-05-02 11:50:58

标签: java selenium webdriver cucumber gherkin

网站显示我需要声明的以下文字:

Living Place "123" hasn't been found

我在网页上有一块ghurkin / cucumber我需要使用Selenum Webdriver Java来断言.assertTrue:

The text "Living Place "123" hasn't been found" is present on the page

我为此编写的java代码如下:

    @Then("^The Text \"([^\"]*)\" isnt present on the page$")   
    public void not_present(String text) throws Throwable {

    waitForTextInElementVisible(By.id("main-content"), text);
    Assert.assertTrue(driver.findElement(By.id("main-content")).getText().contains(text));
}

问题是,Gherkin脚本不能以这种方式处理String,因为它包含双引号。有没有办法断言上面给出的确切字符串?

3 个答案:

答案 0 :(得分:0)

我不确定我是否完全解决了你的问题。

但你可以将字符串传递给" Living Place \" 123 \"还没有找到"。 [注意\之前"里面的字符串]

你可以这样打电话。 not_present(" Living Place \" 123 \"还没有找到");

答案 1 :(得分:0)

试试这个@Then("^The Text \"([^\"]*)\"\d+\"([^\"]*)\" isnt present on the page$")。此步骤映射将映射到要素文件Then The Text "Living Place "123" hasn't been found" isnt present on the page中的字符串。这将替换数字之前的文本\“([^ \”] *)\“即'居住地',这会在引号\”\ d + \“即123中搜索多个数字符号,并再次分配以匹配文本。

答案 2 :(得分:0)

显然,而不是使用      \"([^ \"] *)\",

我不得不使用\"(。*)\"

这将使小黄瓜脚本起作用:

The text" Living Place" 123"还没有找到"出现在页面上