#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 проблемы:
-
это span, а не div
-
чтобы использовать селектор по 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 секунд