代码之家  ›  专栏  ›  技术社区  ›  Audiosleef

数据表中的新行小黄瓜/黄瓜

  •  0
  • Audiosleef  · 技术社区  · 6 年前

    在我的黄瓜场景中有一个数据表:

    | name        | value
    | Description | one \n two \n three |
    

    我希望值显示在文本区域中,如下所示:

    one
    two
    three
    

    因为我需要从中找出要点。 所以我的实际问题是,有没有可能在一行中使用换行符,或者有更好的方法来处理这个问题?

    编辑: 澄清一下,它不适用于上面写的代码:

    WebDriverException: unknown error: Runtime. evaluate threw exception: SyntaxError: Invalid or unexpected token
    

    我使用了一些不寻常的代码来访问这个值,因为它是一个p元素,这通常是不可能的:

    js.executeScript("document.getElementsByTagName('p')[0].innerHTML = ' " + row.get("value") + " ' ");
    

    这对其他行也有效,可能是因为我现在正在使用\n?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Andrei Suvorkov    6 年前

    您可以这样尝试:

    WebDriver driver = new ChromeDriver();
    driver.get("https://stackoverflow.com/questions/51786797/newline-in-datatable-gherkin-cucumber/51787544#51787544");
    Thread.sleep(3000); // pause to wait until page loads
    
    String s = "SOME<br>WORDS";
    
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("document.getElementsByTagName('div')[0].innerHTML = '" + s + "';");
    

    SOME 
    WORDS
    

    所以,主要的想法是 <br> 标记为新行分隔符。

    你的情况是这样的:

    | name        | value
    | Description | one<br>two<br>three |
    

    // make sure, that row.get("value") returns a string
    js.executeScript("document.getElementsByTagName('p')[0].innerHTML = ' " + row.get("value") + " ' ");