2017-02-07 10 views
0

アイデアは簡単です。私は、カスタムUIButton持っている:UIBestはUITestsでタップできません

@IBDesignable class RadioButton: AttributedButton { 

    private let attributedView = AttributedView(frame: CGRect(x: 0, y: 0, width: 16, height: 16)) 

    @IBInspectable var isActive: Bool = false { 

     didSet { 

      attributedView.removeFromSuperview() 

      attributedView.center = CGPoint(x: frame.size.width/2, y: frame.size.height/2) 
      attributedView.layer.borderWidth = 1 
      attributedView.cornerRadius = 8 

      attributedView.backgroundColor = isActive ? UIColor.scooter : UIColor.white 
      attributedView.layer.borderColor = isActive ? UIColor.scooter.cgColor : UIColor.silver.cgColor 
      addSubview(attributedView) 
     } 
    } 
} 

これはときisActive = false、それがどのように見えるかです:

enter image description here

isActive = true

enter image description here

アプリが動作しているときにすべてが期待どおりに動作します。しかし、私はUITestsの下で行う必要があります。私はそのボタンをタップするだけですが、タップされていません。どうして?

タップを実行するにはどうすればよいですか?

let termsRadioButton = app.buttons["termsRadioButton"] 
termsRadioButton.tap() 

私はisActive = true場合、私がチェックをタップしたら、私は本当にそのボタンをタップするので、ない場合は、その後、私は警告を表示...アラートはuitestsの下であってはなりません。ここで何が間違っていますか?ボタンは、細胞または他の容器のビュー内にある場合

enter image description here

答えて

0

は、あなたのボタンがアクセスできるようにするためにアクセスできなくするためにセルを設定する必要があります。

この質問に対する私の答えを参照してください:https://stackoverflow.com/a/42038145/5052894

あなたはUIテストからボタンの状態を確認することができるようにしたい場合は、私はUIControlの一部であり、ボタン、UIButtonにisSelectedを設定することをお勧めから継承する。 XCUIElement.isSelectedを使用して、ボタンの状態にアクセスできます。

関連する問題