Arhn - архитектура программирования

Объект python пользовательского ключевого слова robot framework selenium webdriver не имеет атрибута 'get_attribute'

Я пытаюсь написать пользовательскую функцию, используя существующую библиотеку Seleniumlibrary для роботов в python, чтобы получить ссылку из элемента. Но я продолжаю получать проблемы в get_attribute.

Ошибка: объект «список» не имеет атрибута «get_attribute»

Библиотека импортирована

from selenium import webdriver
from robot.libraries.BuiltIn import BuiltIn

def get_one_links(locator,attribute):
    lib = BuiltIn().get_library_instance('SeleniumLibrary')
    links = lib.find_elements(locator).get_attribute(attribute)
    return links

Ответы:


1

Это потому, что вы пытаетесь вызвать метод в списке, вы можете вызвать только один элемент. См. пример ниже. Свойство «get_attribute» не существует для списков, но свойство «get_attribute» существует для одного элемента. Например:

Вам нужно сделать что-то подобное в вашем коде,

from selenium import webdriver
from robot.libraries.BuiltIn import BuiltIn

def get_one_links(locator,attribute):
    lib = BuiltIn().get_library_instance('SeleniumLibrary')
    links = lib.find_elements(locator)
    for link in links:
        return link.get_attribute('href')
        #return link if thats what you want
25.03.2020
  • Когда водитель driver = webdriver.Chrome("C:\Path\To\chromedriver.exe") 25.03.2020
  • Но вы не вызываете существующую библиотеку роботов Selenium. Я хочу использовать существующую библиотеку. 25.03.2020
  • Я не изменил ничего, связанного с роботом. Метод getAttribute() — это метод, объявленный в интерфейсе WebElement и встроенный в селен. Вам просто нужно применить операцию по-другому, чтобы получить свои результаты 25.03.2020
  • items = driver.find_elements_by_tag_name(a) не работает в существующей библиотеке каркаса роботов. Драйвер доступен только при объявлении webdriver.chrome. Но в моем случае я вызываю существующую библиотеку. существующая библиотека не распознает драйвер. 25.03.2020
  • Я обновил свой код. Предыдущий пример должен был быть несвязанным примером того, как это будет работать. Можете ли вы увидеть обновление сейчас. 25.03.2020
  • Код работает, но не выполняет правильную работу. Я хочу получить ссылку из этой функции. Я этого не понимаю. Вместо ссылки я получил ‹selenium.webdriver.remote.webelement.WebElement (session=bbfcc9a5d9c8e6a5c5427e32df78802a, element=15b5412f-6cc1-4b57-a0de-20eed1284dde 25.03.2020
  • Что вы передаете в качестве значения атрибута? Чтобы получить только ссылку, она должна быть такой get_attribute('href'), где this получит ссылку, которую вы хотите 25.03.2020
  • Да, я сделал это. def get_one_links(locator): lib = BuiltIn().get_library_instance('SeleniumLibrary') links = lib.find_elements(locator) для ссылки в ссылках: link.get_attribute('href') обратная ссылка 25.03.2020
  • Не вернуть link нужно вернуть link.get_attribute('href'). Первый просто возвращает то, что вы разместили выше, а второй возвращает ссылку. 25.03.2020
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..