Селектор CSS для div при использовании selenium webdriver и ruby

Я работал над селекторами CSS, чтобы найти элемент при использовании веб-драйвера selenium, но поиск элемента для ниже div кажется сложным.

<div class="class1 class2" dd:btnfloatingstyle="top-right" dd:entitytexttype="resultval" id="_78891a36-3d75-432e-9906-760bd918e7cb" contenteditable="true"></div>

Для поиска элемента с помощью селектора css я обычно делаю:

$driver.find_elements(:css, 'div.classname')

Но в этом случае у меня есть 2 имени класса, и я не возвращаю элемент, пока делаю:

   $driver.find_elements(:css, 'div.class1 class2') or
   $driver.find_elements(:css, 'div.class1 > div.class2') or
   $driver.find_elements(:css, 'div.class1 + div.class2')

Я что-то пропустил или есть другой способ найти этот элемент??


person tech_human    schedule 31.07.2013    source источник


Ответы (1)


Попробуйте, как показано ниже:

$driver.find_elements(:css, 'div.class1.class2')

Просто в качестве живого примера я использовал ссылку википедии Ruby_on_Rails и написал код для доступа к приведенной ниже таблице html по указанной ссылке.

HTML

 <table class="wikitable sortable jquery-tablesorter" align="left">
 <caption>Version history</caption>
 <thead>
    <tr>
       <th class="headerSort" title="Sort ascending">Version</th>

Код Ruby

require 'selenium-webdriver'

driver = Selenium::WebDriver.for :firefox
driver.navigate.to "http://en.wikipedia.org/wiki/Ruby_on_Rails"
elem = driver.find_element(:css, 'table.wikitable.sortable.jquery-tablesorter')
p elem.tag_name
# => "table"
p elem.find_element(:tag_name, 'caption').text
# =>  "Version history"
person Arup Rakshit    schedule 31.07.2013