我的黄瓜方案中有此数据表:
| 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吗?
答案 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") + " ' ");