我正在使用Cucumber,Ruby和Selenium。我有以下HTML:
<html>
<body>
<div class="breadcrumbtrail" id="breadcrumbtrail">
home
</div>
</body>
</html>
以及以下步骤定义
begin
puts "got to bct step"
bctValue = @driver.find_element(:class_name, "breadcrumbtrail").getText()
puts "got bctValue value of #{bctValue}"
assert(crumb == bctValue, "breadcrumbtrail #{bctValue}, not #{crumb}")
end
我的输出显示正在运行该步骤;我曾尝试从div中获取“innerText”的属性,这似乎给了我div的名称。
我在find_element之后尝试过各种各样的东西 - 这个告诉我undefined method getText
。我应该在ruby步骤定义中使用什么来获取该div中的文本?有没有人有关于此文档的建议?我发现的唯一一个关闭的是数百行,每种支持的语言很多,这使我很难找到我需要的东西。
答案 0 :(得分:1)
事实证明,Selenium :: WebDriver:Element上的正确方法是“text()”,而不是getText()。现在我已将其更改为“文本”,它可以正常工作。
答案 1 :(得分:0)
你正在使用红宝石。 Ruby不使用camelCasing。
更改此行:
bctValue = @driver.find_element(:class_name, "breadcrumbtrail").getText()
到
bctValue = @driver.find_element(:class_name, "breadcrumbtrail").get_text
另外,如果您有id ...
,请不要使用:class_namebctValue = @driver.find_element_by_id('breadcrumbtrail').get_text
答案 2 :(得分:0)
您可以使用下面的代码行来解决问题。
bctValue = @driver.find_element(:class_name, "breadcrumbtrail").text