【问题标题】:Newline in datatable Gherkin/Cucumber数据表 Gherkin/Cucumber 中的换行符
【发布时间】:2018-08-10 12:41:47
【问题描述】:

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

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

我希望这些值像这样出现在文本区域中:

one
two
three

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

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

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

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

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

这一直适用于其他行,也许是因为我现在正在使用 \n?

【问题讨论】:

  • “更好”的方式是什么意思?
  • 更好/其他的方式,任何可以帮助我获得结果的方式
  • 现在应该可以了。无需更改代码
  • WebDriverException:未知错误:运行时。评估抛出异常:SyntaxError: Invalid or unexpected token
  • 您能分享一下您目前拥有的代码吗?

标签: java selenium testing cucumber gherkin


【解决方案1】:

你可以试试这个方法:

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

所以,主要思想是使用&lt;br&gt;标签作为换行符。

你的情况是这样的:

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

【讨论】:

  • 我找到了解决办法,请看看
  • 抱歉耽搁了,当时正在度假。我从上面复制了代码,它忽略了断线。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-23
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多