wie Blättern Sie mit Selen
Habe ich hier eine Herausforderung, dass ich verbrachte einige Zeit mit.
Selen sagt mir, dass es nicht auf einen link klicken, der nicht sichtbar ist, so bedeutet das, dass ich scrollen zu müssen meine Leinwand? Ich bin mit ubuntu 10, firefox 3, Selen 0,1, ruby 1.9.2, und selenium-webdriver 2.5.0
Mein code ist
driver = Selenium::WebDriver.for :firefox;
driver.get login_url
wait = Selenium::WebDriver::Wait.new(:timeout => 2)
wait.until {
driver.find_element(:name => 'j_password')
}
driver.find_element(:name => 'j_username').send_keys(username)
driver.focus(:name => 'j_username')`
und es sagt, dass focus()
ist nicht definiert. Wie sollte ich ändern mein code, um das input-element auf dem Bildschirm?
Ähm, dies ist ein hypothetisches Beispiel, ich wirklich brauchen, um so zu scrollen, dass einige andere element auf dem Bildschirm, aber der Einfachheit wegen würde ich gerne in der Lage, scroll-en.t. alle element auf dem Bildschirm, auch
- Selen sollte automatisch scrollen Sie nach unten, um das element. Wenn es sagt, dass es nicht angezeigt wird, bedeutet dies normalerweise, dass das element selbst ist für den Benutzer nicht sichtbar. Überprüfen Sie, dass Sie die Auswahl der richtigen element und dass es angezeigt wird! Alternativ versuchen zu testen, den gleichen code auf einer anderen Seite, um herauszufinden, ob der Fehler von der Seite oder den code.
- ja, du hast Recht... ich schrieb einen test-Fall in der Tat, Selenium::WebDriver scrollt automatisch. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die Dokumentation sagt, "nicht sichtbar" es ist nicht die sich der view-port, sondern auf den status des Elements auf der Seite. Wenn etwas ist verborgen mit CSS es kann nicht angeklickt werden.
location_once_scrolled_into_view
scrollen mit ruby.Wie pro Ihre Frage, Ihr element ist nicht sichtbar, so selenium web driver nicht in der Lage ist, es anzuklicken.
Einfache Lösung für dieses ist:
eg-code:
Hatte ich ein element an das Ende der Seite, und kein anderes element nahe genug, um wählen Sie zunächst. Schließlich ist es durch anordnen des letzten Feldes in das Formular auf der Seite.
element.send_keys(:tab)
Wenn Sie möchten, scrollen Sie auf das firefox-Fenster mit selenium webdriver, eine Möglichkeit ist die Verwendung von javaScript in den java-code, Der javeScript-code, um nach unten zu Blättern ist wie folgt:
Ich bin mir nicht bewusst, ruby, aber der obige code kann verwendet werden, als java-Script, das wird nach unten scrollen die ganze Seite.Sie können sogar definieren den Bereich, den Sie möchten, scrollen Sie im Fenster anzeigen, indem Sie einfach die hart - Codierung der
window.scrollTo(200,350);