Frage

ich werde kurz sein.

Soweit ich weiß watir Bibliothek bietet zwei Methoden für HTML-Elemente zu bekommen.

Fast für jedes Element (div, Knopf, Tisch, li, usw.) Watir zwei Methoden bestimmt:

. Eine davon ist die ‚singulären‘ Methode, die nur ein bestimmtes Element erhält. Zum Beispiel:

watir_instance.div(:id,'my_div_id')
watir_instance.link(:href,'my_link_href')
watir_instance.button(:class =>'my_button_class', :index => 4)

Diese Methoden werden nur ein einziges Element abrufen. Das ist ok ...

. Das zweite ist das ‚Plural‘ Methode, die alle Elemente des Watir Instanz abruft

watir_instance.divs
watir_instance.links
watir_instance.buttons

Aber soweit ich weiß, watir keine Methode liefert mehr als ein erhalten Element gibt bestimmte Bedingungen erfüllen.

Zum Beispiel ... Wenn ich will alle Verbindungen mit der ID blinken: my_link_id wäre es sehr einfach, so etwas zu tun:

watir_instance.divs(:id, 'my_link_id').each do |link|
  link.flash
end

Mit hpricot dieser Aufgabe ist sehr einfach ... aber wenn Ihr Ziel ist nicht der Fall zu analysieren ich keine Watir Methode gefunden, das tut, was ich will.

Ich hoffe, Sie können mich verstehen ...

Cheers, Juan !!

War es hilfreich?

Lösung

Juan,

Ihr Skript hat mehrere Probleme:

  • Sie sagen, Sie alle Links blinken wollen, aber dann verwenden Sie watir_instance.divs. Es sollte watir_instance.links
  • werden
  • Sie übergeben Argumente divs Methode: watir_instance.divs(:id, 'my_link_id'). Es sollte nur watir_instance.divs
  • sein

Ihr Beispiel ist auch seltsam:

  

ich will alle Links blinken mit   id: my_link_id

Soweit ich weiß, id sollte auf der Seite eindeutig sein.

So, hier sind verschiedene Beispiele:

1) Flash-alle Links auf dieser Seite:

require "watir"
b = Watir::IE.start "http://stackoverflow.com/questions/1434697"
b.links.each do |link|
  link.flash
end

2) Blitz alle Links auf dieser Seite, die in URL (Bonus questions hat: blättern die Seite, so dass die Verbindung, die geflasht sichtbar ist):

require "watir"
b = Watir::IE.start "http://stackoverflow.com/questions/1434697"
b.links.each do |link|
  if link.href =~ /questions/
    link.document.scrollintoview
    link.flash
  end
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top