Ich versuche, mit dem neuen Rubin Selen-Webdriver vertraut zu machen, da es mehr intuitiv als die vorherige Version von Selen und der Ruby-Treiber scheint das ging damit. Außerdem hatte ich Probleme, das alte Selen mit Ruby 1.9.1 in Windows zu arbeiten, also dachte ich, ich würde nach einer Alternative suchen. Bisher habe ich das mit meinem Skript getan habe:Wie stelle ich eine Option wie Selenium WebDriver (Selen 2.0) Client in Ruby
require "selenium-webdriver"
driver = Selenium::WebDriver.for :firefox
driver.get "https://example.com"
element = driver.find_element(:name, 'username')
element.send_keys "mwolfe"
element = driver.find_element(:name, 'password')
element.send_keys "mypass"
driver.find_element(:id, "sign-in-button").click
driver.find_element(:id,"menu-link-my_profile_professional_info").click
driver.find_element(:id,"add_education_btn").click
country_select = driver.find_element(:name, "address_country")
Also im Grunde in meiner Website ich anmelden und versuchen, eine Ausbildung Eintrag für mein Benutzerprofil hinzuzufügen .. Ich habe einen Verweis auf eine Auswahlbox mit Optionen (in der Variable country_select) und jetzt möchte ich eine Option mit einem bestimmten Wert auswählen. Ich sehe nicht, wie dies in dem neuen Client zu tun ist. Das einzige, was mir einfällt, ist das Durchlaufen aller Optionen bis ich die gewünschte finde und dann execute_script aufrufen: http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver/Driver.html#execute_script-class_method Methode, um den selectedIndex zu setzen.
Gibt es eine andere Möglichkeit, dies zu tun? In der Java-API für Selen 2.0/WebDriver hier: http://seleniumhq.org/docs/09_webdriver.html es ist ein Beispiel für diese Es erscheint
Select select = new Select(driver.findElement(By.xpath("//select")));
select.deselectAll();
select.selectByVisibleText("Edam");
tun nicht, dass die Ruby-Version, obwohl diese Funktion hat, es sei denn ich etwas fehle. Jede Hilfe wäre willkommen.
Dies nicht zu funktionieren scheint, habe ich versucht, country_select = driver.find_element (: xpath "[id = 'ADDRESS_COUNTRY'] // wählen/option = 'Österreich'") country_select.select und dass didn tu nichts. Ich denke, die Select-Methode ist wie Aufruf von select() in Javascript (legt den Fokus in einem Feld und markiert den Text) –
Haben Sie zuerst das select-Element versucht, durchlaufen Sie dann die WebElement-Optionen und rufen Sie die select-Methode für das gewünschte WebElement auf ? – pnewhook
pnewhook hat es richtig gemacht. Hier ist der entsprechende Ruby-Code: https://gist.github.com/777516 Wenn Element # Auswahl funktioniert nicht, versuchen Sie vielleicht Element # toggle. Wenn Sie der Meinung sind, dass die API zu niedrig ist, sollten Sie das WATIR-Webdriver-Juwel als alternative API für die gleiche Technologie ausprobieren. – jarib