css= div.classname, похоже, не работает в RobotFramework

#robotframework

#robotframework

Вопрос:

Я пытаюсь в нескольких элементах использовать элемент щелчка css=div.classname и не работает. Я использую robot framework с Python 2.7. и библиотека Selenium 2 здесь — один из моих элементов:

Это переключатель, который я хочу выбрать:

  span class="docssharedWizToggleLabeledLabelText freebirdFormviewerViewItemsRadioLabel" dir="auto">Prevention</span>
  

и мой код Robotframework, который не работает:

 Click correct answer
    click element    css=div.ocssharedWizToggleLabeledLabelText freebirdFormviewerViewItemsRadioLabel
  

Я ценю помощь каждого.

Он представляет собой изображение и то, как переключатель находится внутри рамки с возможностью прокрутки

введите описание изображения здесь

Комментарии:

1. Что означает «не работает»? Вы получаете сообщение об ошибке? Если да, то в чем ошибка?

2. Вы ограничены использованием селектора css=*? Вы пробовали другой селектор, такой как xpath?

3. Когда я говорю, что не работает, я имею в виду, что Robotframework не выполняет выбор элемента. В файле журнала указано, что не удается его найти. Я использовал другие, кроме CSS, и они работают нормально. Особенно, если я использую идентификатор в качестве выбора. Я пока не смог сделать это с CSS=DIV.CLASS или используйте имя в качестве селектора. Я задавался вопросом, является ли это проблемой версии.

4. Я попробовал другой способ, но все равно не повезло. Я использовал Xpath checker в браузере Firefox, чтобы получить XPath для переключателя. Я использовал эту команду, чтобы выбрать его. Элемент Selenium2Library.click xpath=id(‘mG61Hd’)/x:div/x:div[2]/x:div[2]/x:div[1]/x:div[2]/x:div/x:content/x:div/x:label[3]/x:div/x:div[2]/x:div/x:span Я получаю в журнале сообщение об ошибке Невозможнонайдите элемент с идентификатором выражения xpath(‘mG61Hd’) /x:div/…etc из-за следующей ошибки: Ошибка: префикс пространства имен не объявлен: x Xpath checker имеет пространство имен x. Поэтому я не понимаю, почему он говорит, что не объявлен!!!

Ответ №1:

Надеюсь, это решит:

 Click correct answer
    click element           sizzle=.docssharedWizToggleLabeledLabelText
  

Комментарии:

1. Я получаю ошибку Javascript. Я использую библиотеку Selenium2. есть ли какая-либо другая библиотека, которую мне нужно добавить? Вот журнал 12:17:58.999 ИНФОРМАЦИЯ о щелчке элемента ‘sizzle=.docssharedWizToggleLabeledLabelText’. 12:17:59.477 СБОЙ WebDriverException: Сообщение: ошибка JavaScript

2. сколько class=.docssharedWizToggleLabeledLabelText на вашей странице? Не могли бы вы проверить с помощью консоли и ввести $(«.docssharedWizToggleLabeledLabelText»). длина

3. Спасибо за ваш ответ. Я попытался использовать консоль, и мне не удалось получить свойство ‘length’ неопределенной или нулевой ссылки. Однако я использовал Dom explorer и обнаружил, что для каждого переключателя на моей странице у меня есть совпадение, поэтому у меня есть как минимум 25 совпадений. Вы можете проверить страницу самостоятельно, если хотите. sites.google.com/site/softwareqaacademy/home/… Еще раз спасибо.

Ответ №2:

Правильный ответ:

 Selenium2Library.Select Frame   xpath=//iframe[@title="QUIZ : QA VS TEST"]
Selenium2Library.click element  xpath = //div[contains(@class, "ItemHeader") and descendant::div[text()="What describes best Quality assurance "]]/..//div[@data-value="Prevention"]
  
  • Первая команда выбирает Iframe, используя Xpath
  • Вторая команда выбирает переключатель, используя Xpath

Ответ №3:

вы используете div.class класс. Я вижу 2 проблемы:

  1. это span, а не div

  2. чтобы использовать селектор по 2 классам, используйте:

    .class.class

итак, пожалуйста, попробуйте это:

 click element    css=span.ocssharedWizToggleLabeledLabelText.freebirdFormviewerViewItemsRadioLabel
  

Комментарии:

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

2. Это не сработало. Я прикрепляю экран печати выше, чтобы увидеть, где находится переключатель. В основном находится внутри фрейма с возможностью прокрутки.

3. это из файла журнала 12:13:30.119 ИНФОРМАЦИЯ о щелчке элемента ‘css=div.docssharedWizToggleLabeledLabelText.freebirdFormviewerViewItemsRadioLabel’. 12:13:30.842 ОШИБКА ошибки ошибки: локатор элемента ‘css=div.docssharedWizToggleLabeledLabelText. freebirdFormviewerViewItemsRadioLabel’ не соответствует ни одному элементу.

4. Спасибо за ваши ответы, но все равно не работает. Не удается найти элемент. Я даже пытаюсь заставить его подождать, чтобы убедиться, что элемент виден, но не повезло. Вот КЛЮЧЕВОЕ СЛОВО журнала Selenium2Library . Подождите, пока элемент не станет видимым ss=span.docssharedWizToggleLabeledLabelText.freebirdFormviewerViewItemsRadioLabel Документация: ожидает, пока элемент, указанный с locator помощью, не станет видимым. Начало / конец / Истекло: 13:39:45.494 СБОЙ локатора элементов css=span.docssharedWizToggleLabeledLabelText.freebirdFormviewerViewItemsRadioLabel’ не соответствует ни одному элементу через 5 секунд