gpt4 book ai didi

watir - 如何在 PageObject 中使用 css 获取元素

转载 作者:行者123 更新时间:2023-12-05 02:24:31 25 4
gpt4 key购买 nike

在我添加测试的项目中,我有一些难以“获取”的元素。
我的 textarea 的 html:

<div class="quote">        
<div class="clearfix">
<div class="icon"></div>
<div class="text">
<span class="yui3-widget yui3-inputwidget yui3-textareawidget yui3-textareawidget-focused" style="">
<span class="yui3-textareawidget-content">
<textarea name="" placeholder=""></textarea>
</span>
</span>
</div>
<div class="author">
(...) other text_field
</div>
</div>
</div>
</div>

目前,我使用这一行来设置值

@browser.element(:css => ".quote textarea").send_keys "test"

在 PageObject 中,我应该声明元素并使用它:

# declaration at the top
element(:quote_text, :css => ".quote textarea")
# use it where I need
self.quote_text = "text"

但是当我使用时出现这个错误:

undefined method `quote_text=' for #<PublishPage:0x33843c0> (NoMethodError)

我哪里错了?

最佳答案

当你执行 element(:quote_text, :css => ".quote textarea") 时,它只会生成方法(参见 doc ):

quote_text #Returns the text of the element
quote_text_element #Returns the element
quote_text? #Returns if the element exists

既然你知道它是一个文本区域并且想要文本区域方法,你应该将它声明为:

text_area(:quote_text, :css => ".quote textarea") 

这将为您提供您期望的 quote_text= 方法(参见 doc )。

更新 - 由于 Watir-Webdriver 只支持元素类的 css 选择器(参见 Issue 124),您还需要更改定位器。 quote_text 的两个替代声明似乎有效:

#Using a block to locate the element:
text_area(:quote_text){ div_element(:class => "quote").text_area_element }

#Using xpath:
text_area(:quote_text, :xpath => '//div[@class="quote"]//textarea')

关于watir - 如何在 PageObject 中使用 css 获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12531705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com