Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cucumber 如何在带换行符的文本中使用expect?_Cucumber_Capybara - Fatal编程技术网

Cucumber 如何在带换行符的文本中使用expect?

Cucumber 如何在带换行符的文本中使用expect?,cucumber,capybara,Cucumber,Capybara,我正在用capybara、cucumber和webdriver进行一些自动化测试 我的目标是要知道一个页面上是否加载了一个文本,但是其中有一个css属性空白,它破坏了文本,expect无法找到 我的代码是这样的 HTML 我正在寻找类似于: #This text will failure in teste expect(page).to have_selector('p', text: 'Some cool text') 水豚试图以浏览器显示文本的方式处理文本。如果浏览器在多行上显示文本,请重

我正在用
capybara
cucumber
webdriver
进行一些自动化测试

我的目标是要知道一个页面上是否加载了一个文本,但是其中有一个css属性
空白
,它破坏了文本,expect无法找到

我的代码是这样的

HTML

我正在寻找类似于:

#This text will failure in teste
expect(page).to have_selector('p', text: 'Some cool text')

水豚试图以浏览器显示文本的方式处理文本。如果浏览器在多行上显示文本,请重试

expect(page).to have_selector('p', text: "Some\ncool\ntext")
如果这不起作用,您可以始终使用正则表达式

expect(page).to have_selector('p', text: /Some\s+cool\s+text/)

水豚试图以浏览器显示文本的方式处理文本。如果浏览器在多行上显示文本,请重试

expect(page).to have_selector('p', text: "Some\ncool\ntext")
如果这不起作用,您可以始终使用正则表达式

expect(page).to have_selector('p', text: /Some\s+cool\s+text/)

第一种方法我已经尝试使用了好几天,它仍然不起作用,但是第二种方法效果很好,非常感谢。@WEBLastWolf如果你能找到元素call element.text,它会告诉你浏览器告诉水豚文本是什么。事实上,你可以做
find('p',text:/Some\s+cool\s+text/)。text
看看这是我尝试了几天的第一种方法,它仍然不起作用,但是第二种方法效果很好,非常感谢。@WEBLastWolf,如果您能在上面找到元素call element.text,它将显示浏览器告诉Capybara的文本是什么。事实上,您只需执行
查找('p',text:/Some\s+cool\s+text/)。text
并查看它是什么