我正在尝试熟悉新的 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 版本似乎没有此功能。任何帮助,将不胜感激。