Найдите элементы, используя селектор css/xpath Selenium Webdriver с Ruby

Недавно я начал использовать Selenium для тестирования приложения с веб-просмотрами. Ну, код для моего веб-просмотра:

<div class="class1 class2 class3 class4" style="padding: 4px;" id="_6bd7b91a-214c-4075-b7db-dcaa08155e1a"> 
    <span class="class5" style="font-weight: bold; text-decoration: underline;">This is TITLE</span> 
    <div class="class6" dd:contenttype="content_type1" dd:concept="TITLE" id="_1d8c4490-d0c1-42ed-a93e-e92ca570dd32">
     <div class="class7"> 

Я пишу повторно используемый код, чтобы найти элемент для автоматического тестирования. В приведенном выше коде элемент можно найти двумя способами, я могу искать его по 'dd:concept="TITLE"' или по тексту "This is TITLE"; но я не мог найти ничего в Selenium, с помощью которого я мог бы найти элемент так, как я хочу.

Я использую "find_element" для поиска элемента, но нет ничего, чему я мог бы передать 'dd:concept="TITLE"' или "This is TITLE" в качестве аргумента.

Я пробовал - driver.find_element(:css, "span.class5") или driver.find_element(:css, "div.class1 class2 class3 class4 span.class5")

Могу ли я найти элемент в веб-просмотре, используя драйвер Selenium и некоторый текст в качестве аргумента?


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


Ответы (1)


FindElement(By.CssSelector("[dd:concept='TITLE']")) должен работать.

А, ты используешь рубин.

Я немного посмотрел, вы можете попробовать это:

find_element(:css, "[dd:concept='TITLE']")

Отредактируйте еще раз.

Я бы предложил экранировать : в имени тега dd:concept, например:

find_element(:css, "[dd\:concept='TITLE']")

person Richard    schedule 29.07.2013
comment
Спасибо Ричард!! Но мне это не очень помогло. Я делаю $driver.find_element(By.CssSelector([dd:concept='TITLE'])) и выдает мне NameError: неинициализированная константа By from (pry):3:in `блок (3 уровня) в ‹top ( обязательно)›' ошибка. - person tech_human; 30.07.2013
comment
Я предполагаю, что единственные аргументы, которые принимает find_element, это один из следующих: (:class, :class_name, :css, :id, :link_text, :link, :partial_link_text, :name, :tag_name, :xpath) - person tech_human; 30.07.2013
comment
Я пробовал таким образом. Получаю Selenium::WebDriver::Error::UnknownError: при обработке команды произошла неизвестная ошибка на стороне сервера. ошибка - person tech_human; 30.07.2013
comment
С помощью поиска в Google я обнаружил, что могу использовать это - driver.find_element(:css, div.ddsection ddrefreshable ddinsertfreetext ddremovable span.ddsectiondisplay). Но даже это мне не помогло. - person tech_human; 30.07.2013
comment
Это сработало для меня. Вчера он не работал, так как по какой-то причине я не получал требуемый текст внутри дома. - person tech_human; 30.07.2013