2017-03-11 4 views
0

Ich führe automatisierte Tests in Ruby durch.Wie finde ich ein CSS-Element auf der Seite, wenn es angezeigt wird: keine?

Ich versuche, ein Skript zu schreiben, ID mit display:none (nur in mobiler Form sichtbar) findet, und klickt es.

Hier ist mein Code:

def open_menu 
    page.find[:css, "a[id='mobile-nav-link']", visible: false].click 
end 

Es gibt mir eine Fehlermeldung:

Selenium::WebDriver::Error::InvalidSelectorError: 
    invalid selector: No selector specified 
+0

Verwenden Sie Capybara? Sind Sie sicher, dass eckige Klammern korrekt sind? Eine schnelle Suche zeigt ähnlichen Code mit runden Klammern, nicht quadratisch. Id.e., 'page.find (: css," ein [id = 'mobile-nav-link'] ", sichtbar: falsch) .click' –

+0

Danke! So einfach war das! – Irina

+0

Großartig, froh, dass geholfen hat! Ich habe es als Antwort gepostet. –

Antwort

0

Eine schnelle Suche zeigt ähnlichen Code mit runden Klammern, nicht quadratisch. Id.e .:

def open_menu 
    page.find(:css, "a[id='mobile-nav-link']", visible: false).click 
end 
0

Selen interagiert nur mit Elementen, wie ein Benutzer tun würde.

Wenn der Link nur im Handy sichtbar ist, würde ich eine der folgenden vorschlagen.

  1. Zeigen Sie die Seite über die mobile URL an.

  2. Es ist möglich, dass Sie in der Lage sind, die JavaScript-Ausführung von Ruby zu verwenden, um das Steuerelement entweder sichtbar zu machen oder den Wert festzulegen, der angibt, dass Sie die Seite über ein mobiles Gerät anzeigen.

die Steuerung aktualisiert sichtbar sein diskutiert

Dieser Link, wie ein Element sichtbar mit Hilfe von Javascript setzen ausführen: Selenium Webdriver - click on hidden elements

Dieser Link wird erläutert, wie ausführen Rubys Javascript verwenden: How to execute Javascript in Ruby written Webdriver test?

Setzen Sie die beiden zusammen, und Sie bekommen so etwas?

Ich bin nicht vertraut mit Ruby-Syntax, so dass ich keine Garantien geben, dass es Kopieren/Einfügen funktioniert.

+0

schlägt auf page.find fehl. Erteilt mir einen Fehler: "Fehler/Fehler: elem = page.find [: css," ein [id = 'Mobil-nav-link'] ", sichtbar: falsch] Selen: : WebDriver :: Fehler: InvalidSelectorError: ungültiger Selektor: kein Selektor angegeben – Irina

Verwandte Themen