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

时间:2018-08-10 12:41:47

标签: java selenium testing cucumber gherkin

我的黄瓜方案中有此数据表:

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

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

one
two
three

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

编辑: 要澄清,它与上面编写的代码不兼容:

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

编辑2: 我正在使用一些不寻常的代码来访问该值,因为它是ap元素,通常是不可能的:

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

这已经用于其他行了,也许是因为我现在正在使用\ n吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试这种方式:

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") + " ' ");