anchor.diff:      throw "Could not find button with title $title";
     }
   
  -  void clickButton(String title) => clickElement(getButton(title));
  +  SparkWidget getButtonById(String id) {
  +    SparkWidget button = dialog.querySelector("#$id");
  +
  +    if (button == null) button = dialog.getShadowDomElement("#$id");
  +
  +    if (button == null) throw "Could not find button with id id";
  +
  +    return button;
  +  }
  +
  +  void clickButtonWithTitle(String title) => clickElement(getButtonByTitle(title));
  +  void clickButtonWithId(String id) => clickElement(getButtonById(id));
  +
  +  void clickClosingX() => clickButtonWithId("closingX");
   }
   
   defineTests() {
  
positive.code:     return int.parse(opacity) > 0 && display != "none" && visibility == "visible";
    }
  
    List<SparkDialogButton> get buttons =>
        dialog.querySelectorAll("spark-dialog-button");
  
    ModalUITester(this.id);
  
    SparkDialogButton getButton(String title) {
      for (SparkDialogButton button in buttons) {
        if (button.text.toLowerCase() == title.toLowerCase()) {
          return button;
        }
  
negative.code: import 'package:spark_widgets/spark_menu_item/spark_menu_item.dart';
  import 'package:spark_widgets/spark_button/spark_button.dart';
  import 'package:spark_widgets/spark_modal/spark_modal.dart';
  import 'package:spark_widgets/common/spark_widget.dart';
  
  import 'package:unittest/unittest.dart';
  
  import '../../spark_polymer_ui.dart';
  