【问题标题】:Calabash - how do I check a radioButton has been selected (multiple same named buttons)Calabash - 如何检查已选择单选按钮(多个相同名称的按钮)
【发布时间】:2015-06-10 18:38:01
【问题描述】:

我对以下内容感到茫然,可能需要更改代码,但我会先在这里询问,希望有人能够提供帮助。

我的表格很长,有多项选择题。 例如。

Q1 到 Q30 - 每个答案都是一个名为“OK”、“not OK”、“Don't Know”的单选按钮 现在在 IRB 控制台上运行查询为: Query("radioButton") 和 query("FormsTextView") 我得到了 contentDescription 和文本值。

现在,由于生成表单数据的方式(通过 Xamarin 表单),每个问题都有: Q1 - 文本 = 好,不好,不知道。 contentDescription 是每个问题一个。

因此,在文本上断言不是一个选项,在 contentDescription 上断言只会选择第一个单选按钮。

断言 ID 不是一个选项,因为它们是由 xamarin 在运行时生成的。

所以我正在寻找一种方法来查看是否已选择单选按钮,然后选择其他单选按钮.. 例如。如果选择了“ok”,则选择“not ok”(注意,两者都有相同的 contentDescriptions,所以也许选择 contentDescription 的第二个实例可能会起作用,但是我还不太精通 Ruby,无法编写可以处理的自定义步骤定义这个场景。

一个可能的解决方案也可能是:然后我触摸 textAndContent 文本 - 使用步骤 def 的伪代码 " 然后我触摸 "textNameOfButton" == "contentDescription" do touchElement where textNameofButton -- contentDescription 所以基本上自定义步骤需要输入 text 和 contentDescription 并将它们传递给复合查询,然后才执行 tap_when_element_exists 方法。可悲的是不知道该怎么做:(

非常感谢任何帮助或指示。

提前谢谢你。 G

【问题讨论】:

    标签: android xamarin calabash


    【解决方案1】:

    据我了解,您将有 30 个“OK”按钮,30 个“Not OK”和 30 个“不知道”按钮。

    我会查询每种类型并将输出放在一个数组中。像这样(OK):

    okArray = query "radioButton text:'OK'
    

    然后查看所有 3 个数组中的索引 0 以查看选择了哪一个。然后只需选择一个不同的。 然后对其他每个索引执行相同的操作。

    【讨论】:

    • 类似:okArray = query("radioButton", :text) //repeat x 3 etc. 可能存在问题,因为我使用的是三星 gal S3,而 irb 查询仅返回一次在设备屏幕上可见的内容。所以数组值会改变。
    • 是的,类似的。是的,如果您只能获得 30 合 1 查询的一部分,您可能会遇到更复杂的情况。但是,您可以通过首先对您可以在屏幕上看到的项目(和查询)执行此操作来解决它,然后使用 scroll_to 在屏幕上获取“新设置”按钮,然后再次运行第 1 部分。
    • 我如何滚动到 lasse?
    • wait_poll(:until_exists => "label text:'#{name}'", :timeout => 20) 滚动("tableView", :down) 结束。复制自stackoverflow.com/a/16436739/1165581stackoverflow.com/users/634678/chathura-palihakkara
    猜你喜欢
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 2023-03-16
    • 2013-02-27
    • 1970-01-01
    相关资源
    最近更新 更多