Выбор переключателя с использованием Selenium и Ruby - PullRequest
1 голос
/ 08 июля 2011

Хорошо, я знаю, что это звучит довольно рудиментарно, и я знаю, что есть документы, объясняющие, как это сделать, однако мне не повезло.

Итак, я создаю свой драйверв Ruby с использованием Selenium:

driver = Selenium::WebDriver.for :firefox, :profile => profile

Скажем, я хочу щелкнуть ссылку, это прекрасно работает со следующим синтаксисом:

driver.find_element(:class => "button").click

Однако, если я хочу выбрать переключательэто в какой-то таблице, например:

<td valign="middle"><input type="radio" NAME="TESTNAME" VALUE="TESTVALUE1"  ></td>
<td valign="middle"><input type="radio" NAME="TESTNAME" VALUE="TESTVALUE2"  ></td>
<td valign="middle"><input type="radio" NAME="TESTNAME" VALUE="TESTVALUE2"  ></td>

Если я хочу проверить "TESTVALUE2", я не могу этого сделать.Например, следующая строка:

driver.find_element(:name => "TESTNAME").send_keys("TESTVALUE2")

Так есть ли какой-нибудь метод, используемый для Ruby, который мне не хватает?Может кто-нибудь привести пример того, как это сделать?Еще раз спасибо.

Ответы [ 3 ]

1 голос
/ 12 июля 2011

Не уверен, почему тег Watir находится на этом вопросе, но я собираюсь ответить с этой точки зрения. Если бы вы использовали Watir-Webdriver, который объединяет серверную часть веб-драйвера с Watir API, вы бы сделали что-то вроде этого, чтобы загрузить нужные гемы и создать экземпляр объекта браузера firefox

require "rubygems"
require "watir-webdriver"
require "watir-webdriver/extensions/wait"

browser = Watir::Browser.new :firefox

Затем, после того как вы перейдете на страницу, чтобы включить переключатель, вы должны использовать

browser.radio(:value, 'TESTVALUE2').set

Многие люди, кодирующие на Ruby, предпочитают API Watir, так как он, кажется, считается более «Ruby-esq», чем Selenium (который больше Java-esq)

Более подробное введение в watir-webdriver см .: http://watirmelon.com/2010/12/14/watir-webdriver-a-detailed-introduction/

0 голосов
/ 16 августа 2017
driver.find_element(:id, 'TEST_ID').click 
0 голосов
/ 08 июля 2011

Я сам не пользуюсь селеном, но я бы ожидал, что что-то вроде

driver.find_element(:name => "TESTNAME", :value => "TESTVALUE2").check

даст желаемый эффект.

...