在 Watir 中访问没有属性的 <p>

accessing a <p> in Watir, which doesn't have attribute

我有这个 html 代码。

<div class="main" data-reactid=".0.2.1.1">
  <div contenteditable="true" data-reactid=".0.2.1.1.0" autocomplete="off">
    <p>
       <br>
    </p>
  </div>
</div>

我必须写在

标签中。为此,我写为:

paragraph(:article_title) {div_element(:class=>'main').div(:index=>1).paragraph(:index=>1)}

但是它给出了一个错误。我不明白这有什么问题。

有几个问题:

  1. Watir 使用基于 0 的索引。结果,div(:index=>1) 实际上意味着找到第 2 个 div 标签。由于这不存在,您将收到无法定位元素的错误。
  2. divparagraph 不是页面对象 gem 中定义的方法。当您尝试使用它们时,您会遇到弃用错误。应该分别是div_elementparagraph_element

尝试做:

paragraph(:article_title) {div_element(:class=>'main').div_element(:index=>0).paragraph_element(:index=>0)}

更简单,因为隐含 :index => 0

paragraph(:article_title){div_element(:class=>'main').div_element.paragraph_element}

由于只有一个段落元素,您可以进一步简化为:

paragraph(:article_title) {div_element(:class=>'main').paragraph_element}