使用包含在page.execute_script中的文本

时间:2018-11-22 00:27:57

标签: rspec capybara

我正在尝试单击包含“某些文本”的div。如何使用 page.execute_script

我尝试了什么: page.execute_script(“ $ div:contains('Some text'))。click()”)

1 个答案:

答案 0 :(得分:0)

您为什么要尝试从execute_script进行操作-

怎么了?
page.find('div', exact_text: 'Some text').click

?显然,如果您将div应该具有的某些类也可以添加到CSS选择器中,则性能会更高,但是无论哪种方式,总比放到execute_script更好。如果确实需要使用execute_script(我希望您不测试页面,因为它会使您的测试毫无价值),那么假设您正在使用JQuery(由于$和非标准的原因):在您的JS中包含伪选择器),就像

page.execute_script <<~JS
  $("div:contains('Some text')").click();
JS

尽管这也会选择所有祖先div,所以请不要单击您认为会的