Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义关键字机器人框架selenium webdriver python“;对象没有属性';获取属性'&引用;_Python_Selenium_Selenium Webdriver_Robotframework_Browser Automation - Fatal编程技术网

自定义关键字机器人框架selenium webdriver python“;对象没有属性';获取属性'&引用;

自定义关键字机器人框架selenium webdriver python“;对象没有属性';获取属性'&引用;,python,selenium,selenium-webdriver,robotframework,browser-automation,Python,Selenium,Selenium Webdriver,Robotframework,Browser Automation,我正在尝试使用python中现有的机器人框架Seleniumlibrary编写自定义函数,以从元素获取链接。但我在get_属性中不断遇到问题 错误:“列表”对象没有属性“获取属性” 导入的库 from selenium import webdriver from robot.libraries.BuiltIn import BuiltIn def get_one_links(locator,attribute): lib = BuiltIn().get_library_instance

我正在尝试使用python中现有的机器人框架Seleniumlibrary编写自定义函数,以从元素获取链接。但我在get_属性中不断遇到问题

错误:“列表”对象没有属性“获取属性”

导入的库

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

这是因为您试图调用列表中的方法,因此只能调用单个元素。请参见下面的示例。列表中不存在“get\u attribute”属性,但单个元素中存在“get\u 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

当驱动程序为
driver=webdriver.Chrome(“C:\Path\To\chromedriver.exe”)
但您没有调用现有的机器人框架库时。我想使用现有的库。我没有改变任何与机器人框架相关的东西。方法
getAttribute()
是在WebElement接口中声明的方法,是selenium的本机方法。您只需以不同的方式应用该操作即可获得resultsitems=driver。在robot框架现有库中,按标记查找元素(“a”)不起作用。驱动程序仅在webdriver.chrome声明时可用。但就我而言,我是在给现有的图书馆打电话。现有库无法识别驱动程序。我已更新代码。前面的例子应该是一个关于它如何工作的无关例子。你现在能看到更新了吗。