? Estoy tratando de familiarizarme con el nuevo ruby selenium-webdriver ya que parece más intuitivo que la versión anterior de selenio y el driver ruby. eso fue con eso. Además, tuve problemas para conseguir que el viejo selenio funcionara con ruby 1.9.1 en windows, así que pensé que buscaría una alternativa. Hasta ahora lo he hecho con mi guión:¿Cómo configuro una opción como seleccionada usando el cliente Selenium WebDriver (selenium 2.0) en 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")
Así que básicamente estoy ingresando a mi sitio y tratar de añadir una entrada de educación al perfil de usuario .. tengo una referencia a un cuadro de selección con opciones (en la variable country_select) y ahora quiero seleccionar una opción con un valor determinado ... No veo cómo hacer esto en el nuevo cliente ... Lo único que se me ocurre hacer es recorrer todas las opciones hasta que encuentre el que quiero, y luego ejecute execute_script: http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver/Driver.html#execute_script-class_method método para establecer el selectedIndex.
¿Hay alguna otra manera de hacerlo? En la API de Java para el selenio 2.0/WebDriver aquí: http://seleniumhq.org/docs/09_webdriver.html no es un ejemplo de hacer esto
Select select = new Select(driver.findElement(By.xpath("//select")));
select.deselectAll();
select.selectByVisibleText("Edam");
No parece que la versión de rubí tiene esta característica, aunque a menos que me falta algo. Cualquier ayuda sería apreciada.
Esto no parece funcionar, he intentado country_select = driver.find_element (: XPath, "// seleccionar [id = 'address_country']/opción = 'Austria'") country_select.select y que didn no hagas nada Creo que el método de selección es como llamar a select() en javascript (pone el foco en un campo y resalta el texto) –
¿Intentó primero obtener el elemento seleccionado, luego iterar a través de las opciones de WebElement y llamar al método de selección en el WebElement que desea ? – pnewhook
pnewhook lo hizo bien. Aquí está el código Ruby equivalente: https://gist.github.com/777516 Si la selección del elemento # no funciona, quizás intente con la opción Element # toggle. Si crees que la API tiene un nivel demasiado bajo, es posible que desees consultar la gema watir-webdriver como una API alternativa a la misma tecnología. – jarib