Недавно я попытался использовать метод Selenium RC GetAttribute , но тут же наткнулся на вызов. Я попытался выполнить очень простой selenium.GetAttribute ("// a / @ href")
, но код вызвал исключение SeleniumException с сообщением "ОШИБКА: не удалось найти атрибут элемента: // a / @ href ".
Подставив selenium.GetText ("// a [@href]")
вместо вызова GetAttribute , я подтвердил, что элемент определенно присутствует, поскольку этот оператор правильно вернул текст ссылки.
Затем я попробовал:
selenium.GetAttribute ("document.getElementsByTagName ('a') [0] .getAttribute ('href')")
- та же проблема; немного другое сообщение об ошибке (и в сообщении об ошибке отсутствует последняя скобка): «ОШИБКА: элемент document.getElementsByTagName ('a') [0] .getAttribute ('href' not found» . Обратите внимание, что это точное выражение правильно работает в консоли Firebug. selenium.GetText ("xpath = / html / body / a [@href]")
для подтверждения существование, а затем selenium.GetAttribute ("xpath = / html / body / a / @ href")
, чтобы получить атрибут - и это сработало! Хотя в руководстве четко указано, что относительные локаторы xpath не нуждаются в явном типе локатора (т. е. префиксе «xpath =»), о абсолютных локаторах xpath ничего не говорится; Я так понимаю, что приставка обязательна. Но из любопытства я вернулся к своему относительному выражению и добавил явный префикс - изменение Ваш ввод также запрашивается для следующего: Шаблон, который я хотел для каждого теста здесь, был (A) GetText ( locator-for-element-with -attribute ) для подтверждения наличия элемента, затем (B) GetAttribute ( локатор-для-самого-атрибута ). Из 6 слотов в таблице ниже я успешно решил 3 из них, как только что было подробно описано, а 4-й кажется ошибкой. Существуют ли решения для оставшихся двух слотов? (Подробнее: Selenium RC версии 1.0.3, браузер: Firefox 3.6.13, мой целевой код на C #) selenium.GetAttribute ("// a / @ href")
на selenium.GetAttribute (" г. GetText) нет?
"xpath = // a / @ href"
нажатие кнопки «Найти» приводит к уродливому сообщению: «[error] locator not found: xpath = // a / @ href, error = [ Исключение ... "Не удалось преобразовать аргумент JavaScript arg 0 [inIFlasher.scrollElementIntoView]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: chrome: //selenium-ide/content/selenium-runner.js :: showElement :: строка 386 "data: no]"
Type GetText GetAttribute
XPath //a[@href] xpath=//a/@href
CSS css=a[href] ??
DOM ?? document.getElementsByTagName('a')[0].getAttribute('href')