【发布时间】:2011-06-08 01:02:44
【问题描述】:
我正在尝试熟悉新的 ruby selenium-webdriver,因为它看起来比之前版本的 selenium 和随附的 ruby 驱动程序更直观。此外,我很难让旧硒在 Windows 中与 ruby 1.9.1 一起使用,所以我想我会寻找替代方案。 到目前为止,我已经用我的脚本完成了这个:
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")
所以基本上我正在登录我的网站并尝试在我的用户个人资料中添加一个教育条目。我有一个带有选项的选择框的引用(在 country_select 变量中),现在我想选择一个选项一个给定的值..我看不到如何在新客户端中执行此操作..我唯一能想到的就是循环遍历所有选项,直到找到我想要的选项,然后调用 execute_script: http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver/Driver.html#execute_script-class_method 方法来设置 selectedIndex。
还有其他方法可以做到这一点吗? 在 selenium 2.0/webdriver 的 java api 中:http://seleniumhq.org/docs/09_webdriver.html 有一个这样做的例子
Select select = new Select(driver.findElement(By.xpath("//select")));
select.deselectAll();
select.selectByVisibleText("Edam");
除非我遗漏了什么,否则 ruby 版本似乎没有此功能。 任何帮助将不胜感激。
【问题讨论】:
标签: ruby select selenium-webdriver